【发布时间】:2020-07-10 20:04:20
【问题描述】:
(平台详情:Windows 10、Visual Studio C++ (MSVC 14.26.28801))
这是一个基本的重现。考虑以下运行良好的程序:
struct Rectangle {};
int main() {
Rectangle rect {};
}
按预期编译和运行。
但是现在如果我们像这样引入 windows.h 的导入:
#include <Windows.h>
struct Rectangle {};
int main() {
Rectangle rect {};
}
我们得到以下编译错误:
syntax error: missing ';' before identifier 'rect' (C2146) [25, 5]'rect': undeclared identifier (C2065) [25, 5]expected a ';' [25, 15]'rect': undeclared identifier (C2065) [26, 5]identifier "rect" is undefined [26, 32]function call missing argument list (C4551) [25, 5]
哎呀!
Microsoft 的文档并没有提供太多见解: https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/compiler-error-c2146?view=vs-2019
(我还是 C++ 新手,如果这很明显,请道歉)
我假设 windows.h 中某处有某种...指令会改变某种行为,但我不确定要搜索或查找什么。
谢谢!
【问题讨论】:
标签: c++ windows winapi visual-c++