zoukankan      html  css  js  c++  java
  • vs2019报错说 E0167 "const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容

    #include <Windows.h>
    int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
    {
    MessageBox( NULL, L"First blood! 你好,Visual Studio!", L" 消息窗口", 0 );//显示一个消息框
    return 0;
    }

    // 如果在项目-属性-配置属性-高级-高级属性-字符集 里面把 使用Unicode字符集改为使用多字节字符集,则
    // L"First blood! 你好,Visual Studio!", L" 消息窗口" 这两个字符串会报错,显示 E0167 "const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容
    // 也即 L"xxxxxx" 要和 使用Unicode字符集 搭配, "xxxxxxx" 和 使用多字节字符集 搭配,配错则vs2019就会报错说E0167 "const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容


    /*****
    // Beginning Game Programming, 4th Edition
    // Chapter 1 - HelloWorld program

    #include <windows.h>

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nShowCmd)
    {
    MessageBox(NULL, "Welcome to Windows Programming!","HELLO WORLD", MB_OK | MB_ICONEXCLAMATION);
    }

    // "Welcome to Windows Programming!"和"HELLO WORLD"出现两个报错: E0167 "const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容
    // 原因是vs2019使用unicode字符集,
    // 在 vc6.0 或者 vc++2010 上编译运行不会出现这个错误提示,因为 vc6.0 或者 vc++2010 默认使用字符 ANSII 编码方式,而 vs 默认使用 UNICODE 编码方式(使用 Unicode 字符集)。两种编码方式对一些字符所占用的内存空间大小不同,为了实现兼容,可以在 vs 中进行项目属性设置,即,将“使用 Unicode 字符集”改为“使用多字节字符集
    // 解决办法:需要在项目-属性-配置属性-高级-高级属性-字符集 里面把 使用Unicode字符集改为 使用多字节字符集,两个报错信息就会消失
    // https://blog.csdn.net/qq_43170478/article/details/104085919
    // 要么 维持使用Unicode字符集 的话,就需要把 "Welcome to Windows Programming!" 改为L"Welcome to Windows Programming!"
    // 把 "HELLO WORLD" 改为 L"HELLO WORLD"


    ****/

  • 相关阅读:
    #2051:Bitset(进制转化)
    #2054:A == B ?(水题坑人)
    #2045:不容易系列之三LELE的RPG难题(dp递推)
    #2037:今年暑假不AC
    #2036:改革春风吹满地
    OJ中的语言选项里G++ 与 C++的区别
    如何在CSDN上如何快速转载博客
    Python之路(第八篇)Python内置函数、zip()、max()、min()
    Python编程笔记(第一篇)Python基础语法
    Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数
  • 原文地址:https://www.cnblogs.com/Thermo/p/15746821.html
Copyright © 2011-2022 走看看