首先代码编译并运行VS2010
但是当我使用cl.exe进行编译时,它会给出
cannot convert parameter 1 from 'WCHAR [10]' to 'LPCTSTR'
代码是
char *fileName = "12.txt";
WCHAR ufileName[10];
MultiByteToWideChar(CP_ACP, MB_COMPOSITE, fileName, -1, ufileName, 10);
postFile(ufileName, clientSock);
postFile(LPCTSTR lpFileName, SOCKET clientSock)
答案 0 :(得分:4)
您正在尝试将WCHAR
数组传递给期望LPCTSTR
的函数。 This article解释LPCTSTR
是一个TCHAR
的数组,TCHAR
的大小与unicode和非unicode版本不同。
您的代码依赖于sizeof(TCHAR) == sizeof(WCHAR)
,因此您需要启用unicode支持。
我猜你在IDE中的构建启用了unicode而你的命令行没有。您可以通过在命令行中添加-DUNICODE -D_UNICODE
来启用unicode支持。