error C2065: “PCONTEXT”: 未声明的标识符

发布于 2020-05-05  51 次阅读


问题描述:

一开始只写了一行:

#include <windef.h>

编译时就出现以下错误:

[cpp] view plaincopy

1>c:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(5547) : error C2146: 语法错误 : 缺少“;”(在标识符“ContextRecord”的前面)  

1>c:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(5547) : error C4430: 缺少类型说明符 – 假定为 int。注意: C++ 不支持默认 int  

1>c:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(5547) : error C4430: 缺少类型说明符 – 假定为 int。注意: C++ 不支持默认 int  

1>c:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(11265) : error C2065: “PCONTEXT”: 未声明的标识符  

1>c:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(11266) : error C2146: 语法错误 : 缺少“)”(在标识符“ContextRecord”的前面)  

1>c:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(11266) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符  

1>c:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(11266) : error C2182: “RtlCaptureContext”: 非法使用“void”类型  

1>c:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(11266) : error C2491: “RtlCaptureContext”: 不允许 dllimport 数据 的定义  

1>c:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(11266) : error C2059: 语法错误 : “)”  

1>c:/program files/microsoft sdks/windows/v6.0a/include/winnt.h(12937) : error C3861: “__readfsdword”: 找不到标识符  

1>e:/personal_files/c++_project/testsdk/testsdk/hikvisionsdk.h(214) : error C2061: 语法错误 : 标识符“SYSTEMTIME”  

1>e:/personal_files/c++_project/testsdk/testsdk/hikvisionsdk.h(395) : error C2061: 语法错误 : 标识符“SYSTEMTIME”  

1>e:/personal_files/c++_project/testsdk/testsdk/hikvisionsdk.h(397) : error C2061: 语法错误 : 标识符“SYSTEMTIME”  

1>e:/personal_files/c++_project/testsdk/testsdk/hikvisionsdk.h(398) : error C2061: 语法错误 : 标识符“SYSTEMTIME”  

1>e:/personal_files/c++_project/testsdk/testsdk/hikvisionsdk.h(409) : error C2061: 语法错误 : 标识符“SYSTEMTIME” 


解决方法:

把#include <windef.h> 变成  #include <windows.h>  ,程序编译时就没有报错了。


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。