error C2146- 语法错误 - 缺少“;”(在标识符“PVOID64”的前面)

error C2146- 语法错误 - 缺少“;”(在标识符“PVOID64”的前面)打开 winnt h 文件 发现问题就是在 winnt h 头文件中无 POINTER 64 的定义造成的 搜索 vc 下的头文件 发现在 basetsd h 头文件中有 POINTER 64 的定义 而在 winnt h 头文件中也包含了该头文件 而在 dxsdk9 中也有 basetsd h 头文件 而该文件无 POINTER 64 的定义 因此编译通不过

大家好,我是讯享网,很高兴认识大家。

打开winnt.h文件,发现问题就是在winnt.h头文件中无POINTER_64的定义造成的。搜索vc下的头文件,发现在basetsd.h头文件中有POINTER_64的定义,而在winnt.h头文件中也包含了该头文件。而在dxsdk9中也有basetsd.h头文件,而该文件无POINTER_64的定义,因此编译通不过。

      解决方法:

      1)调整头文件搜索顺序,把DirectShow的头文件放在最后;

      2)把winnt.h中的#include <basetsd.h>改成"basetsd.h"

     3) 用系统的basetsd.h替换dxsdk9中的basetsd.h     (系统的basetsd.h和dxsdk9不同dxsdk9缺少一些定义)

 

 

 

语法错误 : 缺少“;”(在标识符“ContextRecord”的前面)

一个简单的问题:

头文件为:

#include <iostream>
#include "stdlib.h"
#include <math.h>
#include <windef.h>
#include <winbase.h>

编译后产生如下错误:

d:\program files\microsoft visual studio\vc98\include\winnt.h(3143) : error C2146: syntax error : missing ';' before identifier 'ContextRecord'

d:\program files\microsoft visual studio\vc98\include\winnt.h(3143) : error C2501: 'PCONTEXT' : missing storage-class or type specifiers
d:\program files\microsoft visual studio\vc98\include\winnt.h(3143) : error C2501: 'ContextRecord' : missing storage-class or type specifiers
d:\program files\microsoft visual studio\vc98\include\winbase.h(715) : error C2146: syntax error : missing ';' before identifier 'LPCONTEXT'

d:\program files\microsoft visual studio\vc98\include\winbase.h(715) : fatal error C1004: unexpected end of file found


讯享网

这里的是因为PCONTEXT未得到定义,而且错误产生在windef.h和winbase.h中,且打开头文件没有发现人为改动产生的错误。

 

修改:

第一次尝试将winbase.h放到windef.h之前,结果产生更多错误,因此类型符的定义不在这两个文件中。

因此想到是不是缺少头文件的问题,于是在iostream的下面加上加上了不同的头文件,发现windows.h的时候编译可以通过,由此可知windows.h中定义winbase.h和windef.h的一些东西。

(这里如果将windows.h放到winbase.h的下面,错误又会出现)

于是查了一下windows.h,可以看到:

 

WINDOWS.H是一个最重要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件。这些头文件中最重要的和最基本的是:

WINDEF.H 基本数据类型定义。

WINNT.H 支持Unicode的类型定义。

WINBASE.H Kernel(内核)函数。

WINUSER.H 用户界面函数。

WINGDI.H 图形设备接口函数

因此在后面用到这些头文件时,需要以windows.h为开始(在前面#include <Windows.h>)。

小讯
上一篇 2025-02-20 13:26
下一篇 2025-02-26 12:02

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/124057.html