获取VS Code的C ++ intellisense来处理WinAPI类型

时间:2017-11-10 03:19:40

标签: winapi visual-studio-code vscode-settings

所以,我在VS Code的C ++项目中使用WinAPI。我注意到的一点是标准的C ++ intellisense与WinAPI的许多宏不能很好地搭配。

例如,

#include <windows.h>

int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    MessageBox(0, "This is a test", "Test", MB_OK|MB_ICONINFORMATION);
    return 0;
}

在上面的代码中,错误曲线出现在“This is a test”和“Test”下,因为VS Code的intellisense期望这些参数是LPCWSTR类型,而是将它们解释为const char *。

情况并非如此,因为“这是一个测试”,“测试”作为LPCWSTR有效,程序编译并运行完全正常。

无论如何,我可以让intellisense引擎识别出这不是错误吗?或者我是否必须完全禁用错误曲线?

1 个答案:

答案 0 :(得分:1)

抱歉,在这种情况下VS正常运行。

“这是一个测试”是一个char const *(LPCSTR),而不是LPCWSTR。对于宽字符串文字,添加'L'前缀:L“这是一个测试”。