VC++編譯錯誤error C2065: “HANDLE”: 未聲明的標識符及添加winbase.h后提示winbase.h(243): error C2146: 語法錯誤: 缺少“;”(在標識符“Internal”的前面)的解決辦法


問題描述:

VC++程序編譯時提示錯誤:error C2065: “HANDLE”: 未聲明的標識符等眾多錯誤提示,如下所示:

error C2065: “HANDLE”: 未聲明的標識符
error C2146: 語法錯誤: 缺少“;”(在標識符“hFind”的前面)
error C2065: “hFind”: 未聲明的標識符
error C2065: “INVALID_HANDLE_VALUE”: 未聲明的標識符
error C2065: “WIN32_FIND_DATA”: 未聲明的標識符
error C2146: 語法錯誤: 缺少“;”(在標識符“fdata”的前面)
error C2065: “fdata”: 未聲明的標識符
error C2065: “hFind”: 未聲明的標識符
error C2065: “fdata”: 未聲明的標識符
error C3861: “FindFirstFile”: 找不到標識符
error C2065: “hFind”: 未聲明的標識符
error C2065: “INVALID_HANDLE_VALUE”: 未聲明的標識符
error C2065: “fdata”: 未聲明的標識符
error C2228: “.cFileName”的左邊必須有類/結構/聯合

查找了一下所對應的頭文件為winbase.h,自然就添加上去了:

#include <winbase.h>

但是當添加winbase.h后又提示winbase.h(243): error C2146: 語法錯誤: 缺少“;”(在標識符“Internal”的前面)等眾多錯誤提示,如下所示:

1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(243): error C2146: 語法錯誤: 缺少“;”(在標識符“Internal”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(243): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(243): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(244): error C2146: 語法錯誤: 缺少“;”(在標識符“InternalHigh”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(244): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(244): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(247): error C2146: 語法錯誤: 缺少“;”(在標識符“Offset”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(247): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(247): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(248): error C2146: 語法錯誤: 缺少“;”(在標識符“OffsetHigh”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(248): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(248): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(250): error C2146: 語法錯誤: 缺少“;”(在標識符“Pointer”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(250): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(250): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(253): error C2146: 語法錯誤: 缺少“;”(在標識符“hEvent”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(253): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(253): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(257): error C2146: 語法錯誤: 缺少“;”(在標識符“lpCompletionKey”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(257): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(257): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(259): error C2146: 語法錯誤: 缺少“;”(在標識符“Internal”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(259): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(259): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(260): error C2146: 語法錯誤: 缺少“;”(在標識符“dwNumberOfBytesTransferred”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(260): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(260): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(264): error C2146: 語法錯誤: 缺少“;”(在標識符“nLength”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(264): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(264): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(265): error C2146: 語法錯誤: 缺少“;”(在標識符“lpSecurityDescriptor”的前面)
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(265): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支持默認 int

 

解決辦法:

  將#include <winbase.h>替換成#include<windows.h>就行了。

#include<windows.h> 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM