C++2010 IntelliSense: "const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容

#include<windows.h>
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MessageBox(NULL,"Hello World","",0);
return 0;
}

error C2664: “MessageBoxW”: 不能将参数 2 从“const char [12]”转换为“LPCWSTR”
与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换

哪错了?怎么改啊?

LPCWSTR中的W是宽字符的意思,是UNICODE,就是说不是传统的char这种单字节字符,而是一个字符占两字节.

你的代码中某个地方定义了UNICODE开关,编译环境成了宽字节的,要把这个定义去掉.追问

这是完全抄书的,不过它用的是6.0

追答

代码没有问题,但是你的配置有问题

追问

什么问题?

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-13
加入头文件<tchar.h>
然后把"Hello World"改成_T("Hello World")追问

error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
error LNK1120: 1 个无法解析的外部命令

追答

工程创建错误
你想创建的是win32 应用程序,不过,你选的却是控制台应用程序
创建工程时,不要直接选择完成,点击下一步进行选项

本回答被提问者采纳
相似回答