首页 文章

IntelliSense:类型“const char *”的参数与“LPCWSTR”类型的参数不兼容

提问于
浏览
1

我收到以下错误:

“const char *”类型的参数与“LPCWSTR”类型的参数不兼容

这是我的代码:

static char* getFmuPath(const char* fileName){
char pathName[MAX_PATH];
int n = GetFullPathName(fileName, MAX_PATH, pathName, NULL);
return n ? strdup(pathName) : NULL;
}

我已经声明了MAX_PATH,但它仍然在路径名中显示错误

#define MAX_PATH 4096

问题是什么 ?

2 回答

  • 0

    GetFullPathName不接受 char * . 查看文档,需要 LPTSTRLPCTSTR .

    根据您的构建设置, LPTSTR 和相关类型将变为 char* (ANSI构建)或 wchar_t* (Unicode构建) . 您正在构建为Unicode .

    另外,我不知道你为什么定义 MAX_PATH . 这是Windows常量,因此您不应该重新定义它 .

  • 4

    我同意@tenfour,如果您仍希望使用ANSI字符强制执行系统工作,那么char *将起作用,将代码更改为直接调用 GetFullPathNameA
    或者,更好的是,在Project-> Properties-> Configuration Properties-> General-> Character Set下使用unicode字符集 .

相关问题