【问题标题】:Microsoft Visual Studio 2012 RC C++ IntelliSense errorsMicrosoft Visual Studio 2012 RC C++ IntelliSense 错误
【发布时间】:2012-07-19 14:27:43
【问题描述】:

我是 C++ 新手(我来自 PHP),在我最初的几个项目中,我遇到了一些来自 IntelliSense 的错误。调试窗口说的是:

IntelliSense:“const char *”类型的参数与“LPCWSTR”类型的参数不兼容 c:\C++\RenderEngine\RenderEngine\engine.c

当我运行那个简单的代码时甚至会出现这个错误:

#include <Windows.h>

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
{
    MessageBox(NULL, "Hello, world!", "Simple pop-up", MB_OK);
    return 0;
}

但是,如果我在引号 ( L"Hello, world!" ) 前加上“L”,错误就会消失。是否有可能以任何不同的方式摆脱它? (我正在关注的教程没有前面的 L,所以这对我来说很困惑......)我一直在寻找互联网,但我没有发现任何有用的东西......对不起,如果有这样的问题已经回答了,只是我没看到...

真诚地, 阿明·马科维克。

【问题讨论】:

    标签: parameters arguments intellisense visual-studio-2012 incompatibletypeerror


    【解决方案1】:

    错误是因为您在需要宽字符字符串的地方使用 8 位字符字符串。引号中的字符串常量是一个 ASCII(8 位)字符串,在它前面加上 L,比如 L"A string constant" 表示它是一个 wchar_t 字符串。

    像你一样解决它,通过将环境属性设置为始终使用 wchar_t 字符串是解决它的一种方法,但如果你这样做,它不会在其他任何地方编译。通常最好以可移植的方式来做,只需通过以 L 开头的字符串文字来使用 wchar_t 字符串。

    【讨论】:

      【解决方案2】:

      设法通过以下方式解决它: “Project->(Project name) Properties->Configuration Properties->General->Character Set”设置为多字节字符集

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-03
        • 2012-06-29
        • 2013-01-29
        • 1970-01-01
        • 2012-06-15
        • 1970-01-01
        • 2012-10-23
        • 1970-01-01
        相关资源
        最近更新 更多