VS2008常見編譯錯誤(總結篇)

2021-06-18 07:05:02 字數 700 閱讀 7117

錯誤1:fatal error c1853: 「debug\mydll.pch」預編譯標頭檔案來自編譯器的早期版本

專案中混合了 .cpp 和 .c 檔案時,編譯器會對它們採取不同的編譯方式(主要是因為對函式宣告的處理方式不同),因而不能共用乙個預編譯標頭檔案。

在 vc++ 中,預設的預編譯標頭檔案是針對 c++ 的 (stdafx.h 和 stdafx.cpp),當然也可以建立針對 c 的預編譯頭。

方法:將少數的不同類檔案設為不使用預編譯頭是比較平衡的做法。

具體:vs2008  專案-- 屬性-- 配置屬性—c/c++ -- 預編譯頭 –建立使用預編譯頭 – 選擇不使用。

錯誤2:error c2440: 「static_cast」: 無法從「void (__thiscall cmyposdlg::* )(void)

原因:高版本的vs對語言要求更加嚴格

方法:修改兩處--新增返回型別和 傳遞引數  

訊息響應函式宣告:lresult afx_msg onmyoffdutymessage(wparam wparam,lparam lparam);

訊息響應函式定義: 修改返回型別為lresult, 程式內部返回 true

lresult cposdlg::onmycheckmessage(wparam wparam,lparam lparam)

return true;

紅色字型為需要新增的。

VS2008常見編譯錯誤(總結篇)

錯誤1 fatal error c1853 debug mydll.pch 預編譯標頭檔案來自編譯器的早期版本 專案中混合了 cpp 和 c 檔案時,編譯器會對它們採取不同的編譯方式 主要是因為對函式宣告的處理方式不同 因而不能共用乙個預編譯標頭檔案。在 vc 中,預設的預編譯標頭檔案是針對 c 的...

VS2008編譯問題!

vs2005鏈結問題 lnk2005錯誤 error lnk2005 free 已經在 libcmtd.lib dbgheap.obj 中定義 以前經常遇到這個警告資訊,因為執行並沒有什麼問題,所以也沒深究。但是耿耿於懷那個 0 個錯誤,0 個警告 的成功提示,在網上搜了一下。原來問題出在預設庫的引...

vs2008 編譯驅動

一 c c 屬性設定 1.新增包含檔案 wdk inc crt wdk inc api wdk inc ddk 2.設定目標平台 preprocessor x86 3.修改呼叫約定為 stdcall gz 4.執行時庫選擇 多執行緒除錯 mtd 或者多執行緒 mt 基本執行時檢查 預設值 二 lin...