9
在調用Win32 API函數時,將A
字符追加到末尾而不是W
字符有什麼區別。Win32 API中的`A`和`W`函數有什麼區別?
我知道這意味着ASCII
和WIDE CHARACTER
或Unicode,但輸出或輸入有什麼不同?
例如,如果我調用GetDefaultCommConfigA,它是否會用ASCII字符串而不是WCHAR字符串填充我的COMMCONFIG結構? (反之亦然爲GetDefaultCommConfigW)
換句話說,我怎麼知道是什麼編碼字符串中,ASCII或UNICODE,它必須是由我打電話A
或W
功能的版本?正確?
我找到了這個question,但我不認爲它回答了我的問題。
+1 - 另外需要記住的是,所有作爲參數傳遞給它們的結構也都是A和W版本;所以例如RegisterClassExA使用一個使用ANSI LPCSTR的WNDCLASSEXA,而W版本使用LPCWSTRs - 這會阻止您將WCHAR傳遞給A版本,反之亦然 - 如果嘗試,您會得到關於類型的編譯器錯誤匹配 - 一個相當常見的初學者錯誤是使用強制轉換使錯誤「消失」,而不是在沒有強制轉換的情況下更改代碼以使用正確的類型。 – BrendanMcK