無法解析的外部符號 WinMain 16

2021-06-18 22:58:17 字數 675 閱讀 6862

ctrl+f7 編譯的時候沒有錯誤,而f6生成解決方案的時候出現如下兩個錯誤:

1:error lnk2019: 無法解析的外部符號 _winmain@16,該符號在函式 ___tmaincrtstartup 中被引用        msvcrtd.lib       

2: error lnk1120: 1 個無法解析的外部命令       

因為新建專案的時候選擇的是控制台應用程式,控制台應用程式的入口是main。而在.cpp檔案中提供的是windows入口函式winmian。

(1)專案->屬性->配置屬性->c/c++ ->預處理器 中的【預處理器定義】 刪除「_console」 新增 「 _windows」

(2)專案->屬性->配置屬性->聯結器->系統中的【子系統】設定為windows(/subsystem:windows)

(3)生成->重新生成解決方案

為了支援unicode,c執行庫對winmain其實區分了unicode版和ansi版。對unicode版的程式,c執行庫呼叫wwinmain,而對於ansi版的則呼叫winmain。

(1)將**中的 int apientry _twinmain 替換為 int winapi wwinmain (int winapi wwinmain 替換為 int apientry _twinmain )

(2)生成->重新生成解決方案

無法解析外部符號

先檢視專案屬性裡附加目錄庫包不包含該檔案 資料夾屬性是不是唯讀 最後可能除錯的配置系統位數不對 函式未宣告或未實現等。最近又碰到了新的無法解析外部符號的問題。我在乙個dll專案中引用了另乙個dll專案的某個類成員函式,但該類並沒有匯出,於是出現無法解析的外部符號問題,載入dll專案只能呼叫其匯出的類...

無法解析的外部符號

在使用vs2008除錯程式的過程中,經常會出現無法解析的外部符號問題,可能的原因有很多種,下面這些是我一年來積累的經驗.僅供參考.考慮可能的原因 0 出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包.1 只寫了類宣告,但還沒有寫實現類,造成呼叫時無法解析 2...

無法解析的外部符號

在使用vs2008除錯程式的過程中,經常會出現無法解析的外部符號問題,可能的原因有很多種,下面這些是我一年來積累的經驗.僅供參考.考慮可能的原因 0 出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包.1 只寫了類宣告,但還沒有寫實現類,造成呼叫時無法解析 2...