错误argument of type "char *" is incompatible with parameter of type "LPCWSTR"的解决方法

 

 

方法一:

方法一只针对新手,在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等进行转换

  1. LPCWSTR str1 = TEXT("Hello");
  2. LPCWSTR str2 = L"Hello";
  3. LPCWSTR str3 = _T("Hello");

 

方法三:

这种是针对使用变量来存储字符串的解决方法。

    1. const char* ch = "Hello";
    2. WCHAR wCh[6];
    3. MultiByteToWideChar( 0,0, ch, 5, wCh, 6);  // MultiByteToWideChar函数用法请看MSDN
    4. LPCWSTR str4 = wCh;

 

弦上故人来,纸底乱飞红。
原文地址:https://www.cnblogs.com/lingshaohu/p/2211269.html