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,因此查看官方文档至关重要。