首页
社区
课程
招聘
[已解决]windows编程循序渐进小疑问
发表于: 2008-7-9 06:38 6578

[已解决]windows编程循序渐进小疑问

2008-7-9 06:38
6578
刚开始学,手把手的开始的,我用的VC6.0,在编译第一章this->MessageBox(L"*******");后报错,去掉L后编译通过,这个L是表示什么?是否是因为VC版本的问题,VS2005中是否可以通过?
问题很小,不要笑话我

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
为什么没人回复,希望大家指点一下
2008-7-9 18:09
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
3
this->MessageBox
在VC6及2003下,默认编译为单字节形式。而2005下则编译为宽字符形式。
‘L’表示后面的字符串为宽字符形式。本书的实例都是在2005下实现的。
在VC6下可以改为“MessageBoxW”也可以。

关于VC6下的UNICODE环境设置,可以参见:
http://hi.baidu.com/kofeffect/blog/item/ec0ff82704723806918f9da1.html
2008-7-9 19:53
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢北极星,明白了
2008-7-11 12:09
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
今天编译又出现了这个问题,在VC6中:
CString strMsg = "dolrill";
AfxMessageBox(strMsg,MB_OK,NULL);
编译通过,可是在VS2005中编译报错,找了很多,最后怀疑又是这个问题,于是按上面说的加了L,编译通过,效果和this->MessageBox()相同,看来这个问题我还是没太弄明白,是不是在05中所有的字符串都要用L转换为宽字符形式啊?
而且当我在创建项目的时候如果没要求用unicode编码的MFC时,不用L强调也是可以通过的。新手,出了这样的问题难免,不过幸亏又指点,能联系到还是觉得不错的。
2008-7-16 02:59
0
游客
登录 | 注册 方可回帖
返回
//