呼叫 SnaNlsMapString 函式,將字串從一個代碼頁轉譯到另一個代碼頁。
語法
int WINAPI SnaNlsMapString(
LPCTSTR lpSrcStr,
LPTSTR lpDestStr,
UINT inCodePage,
UINT outCodePage,
Int in_length,
int out_length,
UINT in_type,
UINT out_type,
WORD *Options,
LONG*lConvRequiredLen
);
參數
lpSrcStr
提供的參數。 要轉譯的輸入來源字串。
lpDestStr
傳回的參數。 如果out_length為零,則翻譯後的字串為 NULL。
inCodePage
提供的參數。 指定傳入來源字串的代碼頁;如果輸入為 Unicode,則會忽略 。
outCodePage
提供的參數。 指定輸出翻譯字串的代碼頁;如果輸出為 Unicode,則會忽略 。
輸入長度
提供的參數。 如果輸入是多位元組字元串,則指定字元串的長度;如果輸入是 Unicode 則指定寬字元的長度。
out_length
提供的參數。 指定輸出轉譯字串的最大長度,當輸出字符是多字節或寬字符(Unicode)時。
in_type
提供的參數。 指定輸入來源字串的類型。 in_type 的可能值為多位元組的 SNA_MULTIBYTE 和 Unicode 的 SNA_UNICODE。
out_type
提供的參數。 指定輸出轉譯字串的類型。
out_type的可能值為 SNA_MULTIBYTE(多位元組)和 SNA_UNICODE(Unicode)。
選項
提供和傳回的參數。 作為提供的參數,這會指定一組可套用至翻譯程序的選項,包括 TrnsDT 選項和翻譯的預設字元。 如果函式呼叫失敗,此參數會指出輸出轉譯字串所需的緩衝區長度。
lConvRequiredLen
傳回的參數。 呼叫失敗時所需的緩衝區長度。
傳回值
SnaNlsMapString 函式會傳回成功時寫入 lpDestStr 的字元數或寬字元數;否則會在失敗時傳回 0。
失敗時,應該使用 Win32® GetLastError 函式傳回錯誤碼,指出失敗的原因。 GetLastError 傳回的可能值如下所示:
不支援錯誤
此錯誤會傳回兩個可能的原因:NLS 語言資源文件無法使用,或來源和目的地字串的 in_type 和 out_type 不是相同類型。
ERROR_BUFFER_OVERFLOW(錯誤:緩衝區溢出)
如果輸出緩衝區太小,則會傳回此錯誤。 在這種情況下, Options 參數會以 out_length所需的值傳回。
ERROR_INVALID_PARAMETER(錯誤:無效的參數)
如果在參數中傳遞不正確的值,則會傳回此錯誤;例如,如果 in_type 或 out_type 參數包含未定義的值。
錯誤_無效數據
如果在 lpSrcStr 參數中傳遞不正確的值,則會傳回此錯誤;例如,如果輸入字串結尾有前置位元組,則為 。
ERROR_OUTOFMEMORY
如果無法配置記憶體供SNANLS DLL使用,則會傳回此錯誤。