很久沒寫windows API的用法, 雖然這兩個也不是什麼特別的API, 但是在常對字串轉換的人而言, 這兩個API是很有用的, 看一下MSDN的說法:
http://msdn.microsoft.com/en-us/library/87zae4a3(v=vs.80).aspx
微軟的說法是很好玩的, 其實有用過WideCharToMultiByte, 或是MultiByteToWideChar都知道, 要取得字串長度以及轉換後的長度再轉換, 對於這種API也是沒辦法的事, 因為必須知道轉換後的長度, 才能進行轉換, 不過還好ATL的macro有寫了一組很方便的轉換, 所以我們就可以使用W2A及A2W。
顧名思意, W2A就是把wchar_t轉成char的macro, A2W就是把char轉成wchar_t的版本。
使用方法更簡單, 只要#include <atlbase.h>, 及在code裡使用USES_CONVERSION;就可以了, sample code:
void func(LPSTR lpsz) { |
沒有留言:
張貼留言