我是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。
答案 0 :(得分:0)
通过以下方式管理解决它: “项目 - &gt;(项目名称)属性 - &gt;配置属性 - &gt;常规 - &gt;字符集”并将其设置为多字节字符集
答案 1 :(得分:0)
错误是因为您在需要宽字符串的位置使用8位字符串。引号中的字符串常量是ASCII(8位)字符串,在其前面放置L,例如L“字符串常量”表示它是wchar_t字符串。
通过将环境属性设置为始终使用wchar_t字符串来解决问题,这是解决问题的一种方法,但如果这样做,它将无法在其他任何地方进行编译。通常以便携式方式更好地使用wchar_t字符串,方法是使用L来启动字符串文字。