蛋疼的VC6和VS2010
c++吧
全部回复
仅看楼主
level 11
gameloftyou 楼主
特别是写win32程序时,两者截然不同。
VC6默认MessageBox,TEXT,_T这些全是ASCII版,不管你是否设置UNICODE宏
而VS2010刚好相反,默认它们全为UNICODE版,同样不管你是否设置UNICODE宏
以上是我测试出来的,不知大家的是否一样,感觉这个是不是在其他地方设置的,比如编译条件什么的。
2012年08月29日 14点08分 1
level 11
gameloftyou 楼主
找到了,确实是编译环境问题,VC6和VS2010默认编译环境不一样[拍砖]
VC6.0设置UNICODE编译环境,http://www.cnblogs.com/mars9/archive/2011/09/21/2184158.html
2012年08月29日 14点08分 2
level 11
gameloftyou 楼主
奇怪了,为什么编译器不自动识别是否定义UNICODE宏?
有没有吧友知道怎样设置编译环境能做到这样的效果[揉脸]
2012年08月29日 15点08分 3
level 11
你的#define UNICODE没写错地方吧[揉脸]
2012年08月29日 15点08分 4
我写在了所有预编译命令的后面,有问题么?
2012年08月29日 15点08分
回复 gameloftyou :好像真有问题,要写在最前面么[拍砖]
2012年08月29日 15点08分
回复 gameloftyou :原来真是要写在最前面[拍砖][拍砖][拍砖]
2012年08月29日 15点08分
回复 gameloftyou :[汗]
2012年08月29日 15点08分
level 7
求相关详细教程
2012年08月29日 15点08分 5
6楼
2012年08月29日 15点08分
level 11
gameloftyou 楼主
这个要首先看你的编译器的Preprocessor Definitions(预处理器定义)是否是没有包含UNICODE,_UNICODE宏,这时也可以显式包含_MBCS宏,如果是这样的话,编译器默认MessageBox,TEXT,_T这些写都是ASCII版,如果是包含了UNICODE,_UNICODE宏而没有包含_MBCS宏,则编译器默认MessageBox,TEXT,_T这些写都UNICODE版,不过无论情况如何如果在开头定义(取消定义)UNICODE宏的话编译器默认MessageBox,TEXT,_T这些都是UNICODE版(ASCII版)。
2012年08月29日 15点08分 6
切记要把UNICODE的定义(或取消定义)放在最开头
2012年08月29日 15点08分
level 11
蛋疼的Windows1.0和Windows7[吐舌]
2012年08月29日 15点08分 7
1