这个问题在这里已有答案:
我收到此错误:
“char *”类型的参数与“LPCWSTR”类型的参数不兼容
这是我的代码的一部分
void score(void) { char s[128]; sprintf_s(s, "Thread War! Hits:%d Misses:%d", hit, miss); SetConsoleTitle(s); ... }
如何解决这个问题?
您正在使用 UNICODE 宏定义构建,这意味着所有函数都默认为其宽字符等效项 . 所以当你调用 SetConsoleTitle 时,这实际上是一个扩展为 SetConsoleTitleW 的宏 .
UNICODE
SetConsoleTitle
SetConsoleTitleW
宽字符的类型为 wchar_t ,与 char 不兼容 .
wchar_t
char
您必须显式调用 SetConsoleTitleA ,删除 UNICODE 的定义,或者开始使用 TCHAR 及相关类型和宏 .
SetConsoleTitleA
TCHAR
1 回答
您正在使用
UNICODE
宏定义构建,这意味着所有函数都默认为其宽字符等效项 . 所以当你调用SetConsoleTitle
时,这实际上是一个扩展为SetConsoleTitleW
的宏 .宽字符的类型为
wchar_t
,与char
不兼容 .您必须显式调用
SetConsoleTitleA
,删除UNICODE
的定义,或者开始使用TCHAR
及相关类型和宏 .