VS2010編譯關於winnt h的錯誤

2021-09-16 20:00:56 字數 1189 閱讀 7129

今天在編譯乙個以前寫的程式時,發現如下的乙個錯誤:

1>clcompile:

1>  stdafx.cpp

1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(290): error c2146: 語法錯誤: 缺少「;」(在識別符號「pvoid64」的前面)

1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(290): error c4430: 缺少型別說明符 - 假定為 int。注意: c++ 不支援預設 int

1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(8992): error c2146: 語法錯誤: 缺少「;」(在識別符號「buffer」的前面)

1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(8992): error c4430: 缺少型別說明符 - 假定為 int。注意: c++ 不支援預設 int

1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(8992): error c4430: 缺少型別說明符 - 假定為 int。注意: c++ 不支援預設 int

這個錯誤很奇怪,感覺跟系統自帶的標頭檔案沒有關係,純粹是自己意外引入的。在網上找了半天,發現以下這個網頁遇到的問題跟我遇到的很相似。 

因此把它記錄在此,避免以後以上網頁被404了。

當我們新增外部庫檔案時,預設配置如下,即$(includepath)會在最後

其實都是directshow在作怪,可能是歷史原因,導致directshow庫必須在系統庫之後。修改如下

在該順序下,工程就可以順利編譯了。

網上還有人說這種錯誤提示有可能時2個頭檔案互相包含導致的,這種情況也可能傳送如上錯誤,當然我沒有測試過。

VS2010靜態編譯

因為需要在其他電腦上執行.exe檔案,會有缺dll。所以需要靜態編譯生成.exe可執行檔案。在網上查詢了一下vs2010靜態編譯生成.exe的方法,有很多,試了其中一種,記錄一下,以便今後查閱。感謝提供方法的大神們!設定 1 專案 配置屬性 常規 mfc的使用 在靜態庫中使用mfc 如果有使用mfc...

使用VS2010編譯mod wsgi

為了在windows下使用apache發布django,檢視了文件,有兩種方式可以實現,一種是傳統方式,在apahce modules目錄下存放mod wsgi.so檔案,另一種是直接pip安裝,據文件說是比較方便,但我試了,沒有成功,不知道問題出在哪,也沒有相關中文資料,只好安裝vs2010編譯生...

vs2010編譯引數設定

visual c 2010 編譯引數的設定。主要通過ide的選單項project settings c c 頁來完成。我們可以看到這一頁的最下面project options中的內容,一般如下 nologo mdd w3 gm gx zi od d win32 d debug d win dows ...