bool bCopyRet = CopyFile(m_szFileName.GetData(), Ansi2Unicode(personIcon.path).c_str(), false);
這個代碼有什麼問題?
我之前一直以爲是正確的。
後來查了官方文檔發現:
BOOL WINAPI CopyFile( _In_ LPCTSTR lpExistingFileName, _In_ LPCTSTR lpNewFileName, _In_ BOOL bFailIfExists );typedef int BOOL;//4個字節
typedef unsigned char bool;//1個字節
BOOL 不等於 bool,編譯器提示警告。
因此上句代碼應該爲:
BOOL bCopyRet = CopyFile(m_szFileName.GetData(), Ansi2Unicode(personIcon.path).c_str(), false);
不要小看這個問題。細節決定成敗,你不可能知道所有的API,因此查看官方文檔至關重要。