原创 VC6工程转移至VS2010的对话框乱码问题

2012-1-7 19:35 4042 15 15 分类: MCU/ 嵌入式

        终于下定决心搞搞MFC,经朋友推荐找了一套孙鑫的视频还有教程。结果发现他用的是VC6,我装的是VS2010。无奈,只好在VS2010下重建工程,吧他的代码复制进来,运行,于是神奇的现象出现了。如下,一大堆的错误:

1>  WinMain.cpp
1>c:\users\cxg\documents\visual studio 2010\projects\winmain\winmain\winmain.cpp(26): error C2440: “=”: 无法从“const char [11]”转换为“LPCWSTR”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\cxg\documents\visual studio 2010\projects\winmain\winmain\winmain.cpp(33): error C2664: “CreateWindowExW”: 不能将参数 2 从“const char [11]”转换为“LPCWSTR”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\cxg\documents\visual studio 2010\projects\winmain\winmain\winmain.cpp(59): error C2664: “MessageBoxW”: 不能将参数 2 从“char [20]”转换为“LPCWSTR”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\cxg\documents\visual studio 2010\projects\winmain\winmain\winmain.cpp(62): error C2664: “MessageBoxW”: 不能将参数 2 从“const char [14]”转换为“LPCWSTR”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\cxg\documents\visual studio 2010\projects\winmain\winmain\winmain.cpp(65): error C2664: “TextOutW”: 不能将参数 4 从“const char [19]”转换为“LPCWSTR”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\cxg\documents\visual studio 2010\projects\winmain\winmain\winmain.cpp(72): error C2664: “TextOutW”: 不能将参数 4 从“const char [9]”转换为“LPCWSTR”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>c:\users\cxg\documents\visual studio 2010\projects\winmain\winmain\winmain.cpp(76): error C2664: “MessageBoxW”: 不能将参数 2 从“const char [15]”转换为“LPCWSTR”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>
1>生成失败。

        关键是最后一句:生成失败!!!

        怎么办,改呗。类型转换,咱也不是很懂,强制转换吧。全部加上(LPCWSTR),完成任务后,编译,成功了,我成功了!!运行,我考怎么都是乱码,韩语!!

        到网上找了一通,大家讲的也都看不懂,仿佛看到两位大侠讲什么Unicode什么的,唉,不懂啊。。打开VS2010 乱找一通,不小心发现了下面一个选项:

项目-->WinMain属性,这里的WinMain是项目名称

点进去发现一项:配置属性-->常规-->项目默认值-->字符集

默认配置为“使用Unicode字符集”,改为“使用多字节字符集”。

编译,运行,OK。

文章评论0条评论)

登录后参与讨论
我要评论
0
15
关闭 站长推荐上一条 /2 下一条