当我在 Visual C++ 中编译此代码时,出现以下错误。可以帮我解决这个问题..
DWORD nBufferLength = MAX_PATH;
char szCurrentDirectory[MAX_PATH + 1];
GetCurrentDirectory(nBufferLength, szCurrentDirectory);
szCurrentDirectory[MAX_PATH +1 ] = '\0';
错误信息:
Error 5 error C2664: 'GetCurrentDirectoryW' : cannot convert parameter 2 from 'char [261]' to 'LPWSTR' c:\car.cpp
最佳答案
您的程序配置为编译为 unicode。这就是 GetCurrentDirectory 是 GetCurrentDirectoryW 的原因,它需要一个 LPWSTR
( wchar_t*
)。
GetCurrentDirectoryW 需要 wchar_t
而不是 char
数组。您可以使用 TCHAR
执行此操作,它与 GetCurrentDirectory 一样取决于 unicode 设置并始终表示适当的字符类型。
不要忘记在您的 '\0'
前面加上 L
以使 char 文字也成为 unicode !
关于visual-c++ - 无法将参数从 char[#] 转换为 LPWSTR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5075423/