SnaNlsMapString
會呼叫 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,則會忽略 。
in_length
提供的參數。 如果輸入是多位元組,則指定輸入來源字串的長度,如果輸入為 Unicode,則指定寬字元。
out_length
提供的參數。 如果輸出是多位元組或寬字元,則指定輸出轉譯字串的最大長度,如果輸出為 Unicode,則為字元。
in_type
提供的參數。 指定輸入來源字串的類型。 in_type的可能值為多位元組和 unicode SNA_UNICODE SNA_MULTIBYTE。
out_type
提供的參數。 指定輸出翻譯字串的類型。 out_type的可能值為多位元組和 Unicode SNA_UNICODE SNA_MULTIBYTE。
選項
提供和傳回的參數。 作為提供的參數,這會指定一組可套用至翻譯程式的選項,包括 TrnsDT 選項和翻譯的預設字元。 傳回時,如果函式呼叫失敗,此參數會指出輸出轉譯字串所需的緩衝區長度。
lConvRequiredLen
傳回的參數。 呼叫失敗時所需的緩衝區長度。
傳回值
SnaNlsMapString函式會傳回成功時寫入lpDestStr的字元數或寬字元數;否則會在失敗時傳回 0。
失敗時,應該使用 Win32® GetLastError 函 式傳回錯誤碼,指出失敗的原因。 GetLastError 傳回的可能值如下所示:
ERROR_NOT_SUPPORTED
此錯誤會因為兩個可能的原因而傳回:NLS 語言資源檔無法使用,或來源和目的地字串 的in_type 和 out_type 不是相同的類型。
ERROR_BUFFER_OVERFLOW
如果輸出緩衝區太小,就會傳回此錯誤。 在這種情況下, Options 參數會以 out_length所需的值傳回。
ERROR_INVALID_PARAMETER
如果在參數中傳遞不正確的值,則會傳回此錯誤;例如,如果 in_type 或 out_type 參數包含未定義的值。
ERROR_INVALID_DATA
如果在 lpSrcStr 參數中傳遞不正確的值,則會傳回此錯誤;例如,如果輸入字串在結尾有前置位元組。
ERROR_OUTOFMEMORY
如果無法配置記憶體供 SNANLS DLL 使用,則會傳回此錯誤。