一个关于用C++创建窗体的程序(Visual C++面向对象与可视化程序设计·第二版)例3-1

程序代码如下图:在VS2012中编译是出现以下错误wndclass.lpszClassName=lpszClassName;//窗口类名为“窗口实例”错误:不能讲“cha... 程序代码如下图:

在VS2012 中编译是 出现以下错误
wndclass.lpszClassName = lpszClassName ;//窗口类名为“窗口实例”
错误:不能讲“char”类型的值分配到“LRCWSTR”的实体
hwnd =CreateWindow
错误:IntelliSence:"char"类型的实参与“LRCWSTR”类型形参不兼容
这两个问题怎么解决啊。。。求解答
展开
 我来答
clouroth
2013-09-28 · 超过76用户采纳过TA的回答
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:200万
展开全部

用强制类型转换将char型显式转换为LPCWSTR

CreateWindow前两个参数也要强制转换

或者在项目菜单中选择项目属性菜单,更改字符集,选择使用多字节字符集

帐号已注销
2013-09-29 · TA获得超过3956个赞
知道大有可为答主
回答量:1636
采纳率:77%
帮助的人:1359万
展开全部
项目默认使用Unicode字符了,把API函数调用改一改。

一般用到字符或者字符串的API函数都有两个版本, 一个是函数名后面加了W的版本(使用Unicode字符),另一个是后面加了A的版本(使用ANSI字符集)。

CreateWindow这个不是函数而是一个宏,但你的程序里使用UNICODE字符时,他会展开为CreateWindowW版本的函数调用,但你的程序使用ANSI字符集时展开为CreateWindowA。

你的项目默认使用的是Unicode字符。把WNDCLASS 改成WNDCLASSA 、 CreateWindow改为CreateWindowA.

或者你在文件的最前面加一句#undef UNICODE
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mikeyangzx
2013-09-28 · 超过27用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:67.4万
展开全部
把wndclass.lpszClassName = lpszClassName;
改成wndclass.lpszClassName = (LRCWSTR)lpszClassName;

或者是右击项目->引用->配置属性
找到字符集,将使用“使用 Unicode 字符集”改成“使用多字节字符集”
追问
createWindow 那里又是哪里错了哟。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式