获取 VS Code 的 C++ 智能感知来处理 WinAPI 类型

Getting VS Code's C++ intellisense to deal with WinAPI types

所以,我在带有 VS Code 的 C++ 项目中使用 WinAPI。我注意到,标准 C++ 智能感知与 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 的智能感知期望这些参数是 LPCWSTR 类型,而是将它们解释为 const char *.

这不应该是这种情况,因为 "This is a test" 和 "Test" 作为 LPCWSTR 是有效的,并且程序可以完美地编译和运行。

有没有办法让智能感知引擎识别出这不是一个错误?还是我必须完全禁用错误曲线?

抱歉,VS 在这种情况下工作正常。

"This is a test" 是一个 char const * (LPCSTR),而不是一个 LPCWSTR。对于宽字符串文字添加 'L' 前缀:L"This is a test".