Microsoft Visual Studio 2012 RC C ++ IntelliSense错误

时间:2012-07-19 14:27:44

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

我是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”(L“Hello,world!”)错误消失了。是否有可能以任何不同的方式摆脱它? (我所遵循的教程没有L面前,所以对我来说非常混乱......)我一直在寻找互联网,但我没有找到任何有用的...抱歉,如果这样的问题已经回答了,只有我没见过......

此致 Armin Makovec。

2 个答案:

答案 0 :(得分:0)

通过以下方式管理解决它: “项目 - &gt;(项目名称)属性 - &gt;配置属性 - &gt;常规 - &gt;字符集”并将其设置为多字节字符集

答案 1 :(得分:0)

错误是因为您在需要宽字符串的位置使用8位字符串。引号中的字符串常量是ASCII(8位)字符串,在其前面放置L,例如L“字符串常量”表示它是wchar_t字符串。

通过将环境属性设置为始终使用wchar_t字符串来解决问题,这是解决问题的一种方法,但如果这样做,它将无法在其他任何地方进行编译。通常以便携式方式更好地使用wchar_t字符串,方法是使用L来启动字符串文字。