C 中無法解析的外部符號 WinMain 16

2021-07-24 15:49:44 字數 693 閱讀 9633

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)專案->屬性->配置屬性->聯結器->系統中的【子系統】設定為  控制台 (/subsystem:console)

或debug選擇x64

(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)生成->重新生成解決方案

C 無法解析的外部符號

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

C 無法解析的外部符號

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

c 無法解析的外部符號

1.出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包.2.只寫了類宣告,但還沒有寫實現類,造成呼叫時無法解析 3.宣告和定義沒有統一,造成鏈結不一致,無法解析 4.沒有在專案屬性頁的鏈結器的命令列選項加入相應的類包 5.沒有在c 包含目錄和庫目錄加入相應的類...