1

首先代码用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)
4

1 回答 1

5

您正在尝试将WCHAR数组传递给需要LPCTSTR. 本文解释了这LPCTSTR是一个TCHARs 数组,它TCHAR的大小因 unicode 和非 unicode 版本而异。

您的代码依赖,sizeof(TCHAR) == sizeof(WCHAR)因此您需要启用 unicode 支持。

我猜想您在 IDE 中的构建启用了 unicode,而您的命令行构建却没有。-DUNICODE -D_UNICODE您可以通过添加到命令行来启用 unicode 支持。

于 2012-12-28T13:53:50.370 回答