C++error C2146: 语法错误: 缺少“;”(在标识符“WINAPI”的前面)及“error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int” 解决方案

本文介绍了一种在Visual Studio中遇到的编译错误,主要涉及tlhelp32.h头文件的问题。通过在CPP文件开头引入windows.h头文件解决了此问题。文章解释了windows.h的重要性,并探讨了其在Windows编程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在VS里字定义了一个工程,添加了一个CPP和H,编译时出现了以下奇怪的错误:

1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\tlhelp32.h(30): error C2146: 语法错误: 缺少“;”(在标识符“WINAPI”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\tlhelp32.h(30): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\tlhelp32.h(30): error C2146: 语法错误: 缺少“;”(在标识符“CreateToolhelp32Snapshot”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\tlhelp32.h(30): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\tlhelp32.h(31): error C2065: “DWORD”: 未声明的标识符
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\tlhelp32.h(31): error C2146: 语法错误: 缺少“)”(在标识符“dwFlags”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\tlhelp32.h(31): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\tlhelp32.h(33): error C2059: 语法错误:“)”
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\tlhelp32.h(64): error C2146: 语法错误: 缺少“;”(在标识符“dwSize”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\tlhelp32.h(64): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int


像这样的问题一般一般是由于头文件包含引起的错误。

在CPP的最前面包含 windows.h问题就解决了。为什么会想到这一点呢?同样的CPP和H,在另一个工程里可用,而在这里不能用。对比发现可用的那个工程里,该CPP包含了STDAFX.H,而STDAFX.H里包含了window.h。


话说windows.h 怎么就那么重要呢,不包含,还不让编译通过。打开windows.h,里面全部是头文件包含。VS已经帮我们定义好了在window平台上开发程序所需的头文件和顺序。

以后进行windows编程的时候记得包含就行了。

  1. // stdafx.h : 标准系统包含文件的包含文件,  
  2. // 或是经常使用但不常更改的  
  3. // 特定于项目的包含文件  
  4. //  
  5.   
  6. #pragma once  
  7.   
  8. #include "targetver.h"  
  9.   
  10. #include <stdio.h>  
  11. #include <tchar.h>  
  12.   
  13.   
  14.   
  15. // TODO: 在此处引用程序需要的其他头文件  
  16. #include <windows.h>  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值