無法解析的外部符號 _WinMain@16


無法解析的外部符號 _WinMain@16

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

1:error LNK2019: 無法解析的外部符號 _WinMain@16,該符號在函數 ___tmainCRTStartup 中被引用        MSVCRTD.lib       

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

出這個錯誤可能有以下幾個原因:

一、新建項目是控制台應用程序而程序通過的是WinMian(及windows入口函數)

因為新建項目的時候選擇的是控制台應用程序,控制台應用程序的入口是main。而在.CPP文件中提供的是windows入口函數WinMian。

解決辦法:

(1)項目->屬性->配置屬性->C/C++ ->預處理器 中的【預處理器定義】 刪除“_CONSOLE” 添加 “ _WINDOWS”

(2)項目->屬性->配置屬性->連接器->系統中的【子系統】設置為Windows(/SUBSYSTEM:WINDOWS)

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

二、WinMain的UNICODE版和ANSI版不匹配

為了支持UNICODE,C運行庫對WinMain其實區分了UNICODE版和ANSI版。對UNICODE版的程序,C運行庫調用wWinMain,而對於ANSI版的則調用WinMain。

解決辦法:

(1)將代碼中的 int APIENTRY _tWinMain 替換為 INT WINAPI wWinMain (INT WINAPI wWinMain 替換為 int APIENTRY _tWinMain )

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


免責聲明!

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



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