VC6.0代码移植到VS2008运行时乱码问题解决

转载:http://blog.sina.com.cn/s/blog_6d0cbb030101a3cs.html

问题描述:
    之前用VC6.0写过一个OpenGL的程序,后来需要将其放到VS2008下边进行修改,但是遇到了一系列奇怪的问题,刚开始报告错误说不能从不能将参数从“const char [*]”转换为“LPCWSTR”,想着可能是数据类型的问题吧,于是便手动对所有出错的地方进行强制类型转换,最后F5调试,代码编译通过,但是运行的时候发现程序无法加载位图而导致程序退出,弹出的警告框也是乱码(应该是中文)。
问题关键:
    后来上网查了下,VC6.0与VS2008默认使用的字符集不同。在VC6中,默认使用MBCS编码,即多字节字符集;而VC7、VC8以及VS默认的都是Unicode编码,所以字符集的不同导致相同的代码不一定都一样能够正常运行。
问题解决:
    知道问题所在就好办了,直接设置就行了:
    打开项目后,点击菜单栏“项目-项目属性”,在新打开的属性窗口中设置字符集为“使用多字节字符集”,最后确定即可。

 

PS:从VC6.0移植到VS2008的时候,首先要设置 字符集,不要像楼主一样,先强制类型转换,再修改字符集,最后发现丫的不需要类型转换,最后还得把代码改回来。还有就是傻逼的楼主曾经为了代码跑起来,在 64位windows下装VC6.0失败之后还专门装个虚拟机再装VC6.0,然后再搭环境,人一傻逼,上帝也阻止不了!

你可能感兴趣的:(vs2008)