大家好,C++书上的一段windows应用程序代码,它是用VC6.0运行的,我在VS2005上运行总会错误?

代码:#include<windows.h>intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPST... 代码:
#include<windows.h>
int WINAPI WinMain (HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)
{
MessageBox(NULL,"你好,我的visual世界!","问候",0);
return 0;
}
请问大家这是怎么回事啊?谢谢指导!,还有个就是我用VS2005运行书上的MFC,始终一能像书上VC6.0那样用类向导然后添加代码,郁闷了很久了,希望哪位指导一下,谢谢!
错误提示: error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [23]' to 'LPCWSTR' 谢谢大家的帮助,还是没有用啊!生成不成功
加_T后的效果如图所示!
展开
 我来答
匿名用户
2010-03-20
展开全部
VS2005跟VC6不一样,它默认是Unicode的
所以您要改成
MessageBox(NULL,L"你好,我的visual世界!",L"问候",0);
字符串前都加个L就行了

如果想在2005和VC6通用,加个TEXT或_T

MessageBox( NULL , TEXT("你好,我的visual世界!") , TEXT("问候") , 0 );
pony963
2010-03-20 · TA获得超过761个赞
知道小有建树答主
回答量:659
采纳率:0%
帮助的人:580万
展开全部
问题在于:是否预定义了UNICODE的问题。
原文件:
#ifdef UNICODE
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif // !UNICODE

试试以下方法之一:
#define WINVER 0x0501
#undef UNICODE
MessageBox改为MessageBoxA
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
goodczs
2010-03-20 · TA获得超过2118个赞
知道小有建树答主
回答量:2251
采纳率:0%
帮助的人:944万
展开全部
学编程要学会看找错啊。
下面写的清清楚楚的。你就算不认识英文,你也找个字典翻译下嘛。
这种问题也问,你不动脑子,还怎么学编程?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cknight123
2010-03-22 · TA获得超过964个赞
知道小有建树答主
回答量:532
采纳率:0%
帮助的人:593万
展开全部
你用的函数是 MessageBox 2005宏里面写了,默认采用 MessageBoxW 函数

然后你的错误提示也说的很清楚了,你的MessageBoxW函数的第2个参数必须是LPCWSTR 而不能是 const char[23],你照着改就行了
比如 MessageBox(NULL,_T("xx,xxxxxxx!",_T("xxxx"),0);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式