错误argument of type "char *" is incompatible with parameter of type "LPCWSTR"的解决方法
Posted on 2011-10-14 10:41 猫少侠 阅读(8093) 评论(0) 编辑 收藏 举报
方法一:
方法一只针对新手,在vs2010中修改编码格式:
右键工程——》
选择“Properties”——》
选择“Configuration Properties”——》
再选择“General”——》
最后把“Project Default”下的“Character Set”修改为“Use Multi-Byte Character Set”(默认为“Use Unicode Character Set”)
这样对新手来说,就省了很多类型显示转换的工夫。但是这对学习windows不好,因为这样无法理解windows编程的特性、字符格式的原理。有精力还是不要用方法一,多折腾下就好了,请看方法二和三,会学到很多东西的。学习编程都是这样,不要贪图闲逸,一定要不畏苦难,遇到困难要想方设法搞懂:
1.为什么会出现这种错误?
2.出现这种错误的解决方法?
3.哪种方法最好,为什么?
4.联想自己遇到过的类似问题,比较、思考、总结。
相信你这样子会走得更远。
方法二:
方法二要引入 #include<tchar.h>,才能使用TEXT等进行转换
- LPCWSTR str1 = TEXT("Hello");
- LPCWSTR str2 = L"Hello";
- LPCWSTR str3 = _T("Hello");
方法三:
这种是针对使用变量来存储字符串的解决方法。
-
const char* ch = "Hello";
- WCHAR wCh[6];
- MultiByteToWideChar( 0,0, ch, 5, wCh, 6); // MultiByteToWideChar函数用法请看MSDN
- LPCWSTR str4 = wCh;
弦上故人来,纸底乱飞红。