![](/img/trans.png)
[英]error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
[英]Error LNK2019: unresolved external symbol _wWinMain@16 referenced in function ___tmainCRTStartup
我已經開始使用DirectX 11並遇到以下編譯錯誤:
錯誤1錯誤LNK2019: 函數_ _tmainCRTStartup中引用了無法解析的外部符號wWinMain @ 16
錯誤2錯誤LNK1120:1個未解決的外部組件(我認為此錯誤是由於該錯誤上方的錯誤引起的)
我已經搜索了很長時間來解決此問題,但在此網站或任何其他通過google的網站上都找不到該問題的解決方法。
我為此項目使用Visual Studio 2012和c ++。 為了進行測試項目,我通過“新建項目”->“ Visual C ++”->“空項目”創建了一個空項目。 我正在為此項目使用標准編譯器。
這是我的main.cpp文件中的wWinMain標頭:
int wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance, LPWSTR cmdLine, int cmdShow)
IntelliSense還在文件開頭的某些包含行中不斷拋出“ 4 IntelliSense:'#'nothere here”錯誤,這些行是:(編輯:錯誤不斷消失並再次出現)
#include <Windows.h>
#include <memory>
#include "BlankDemo.h"
#include <tchar.h>
我把它放在帖子中,因為我認為這可能是受錯誤影響或與錯誤有關,它可能只是包含文件。 BlankDemo.h是測試演示的頭文件,該演示文件僅產生一個空白的DirectX 11窗口。
我使用的所有代碼均來自DirectX上的一本書; 因為我還不習慣DirectX,所以我嘗試了許多修復程序,但似乎都沒有擺脫該錯誤的方法,這些修復程序是:
轉到“屬性”->“配置屬性”->“常規”->“字符集”,然后將其更改為“使用Unicode字符集”。
更改字符集后,錯誤仍然存在。
轉到“屬性”->“鏈接器”->“系統”,然后將“子系統”更改為Windows(/ SUBSYSTEM:WINDOWS)。
我還嘗試將其更改為控制台(/ SUBSYSTEM:CONSOLE),這些更改似乎都不能解決問題。
我也轉到了“屬性”->“鏈接器”->“命令行”,並在“其他選項”中添加了/ ENTRY:“ wWinMainCRTStartup”,這也不能解決問題。
我仍然對項目進行了更改,如上面在項目中所述。 我只輸入了幾行代碼,因為錯誤似乎與我在這篇文章中輸入的代碼有關,而且當我復制並粘貼代碼時,它似乎格式不正確,但是請告訴我是否需要查看更多代碼。
編輯:我已將函數更改為int WINAPI __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance, LPWSTR cmdLine, int cmdShow)
即使在函數名稱中使用__stdcall
或WINAPI
也不起作用。 至少,以我使用它們的方式,請告訴我這是否不正確。
抱歉,看來我在這里犯了錯誤, 在屬性->配置屬性->常規->字符集下,我沒有使用Unicode開始。 似乎通過使用多字節字符集開始,這使Visual Studio 2012感到困惑,以為我改用了多字節字符集。 即使將“屬性”->“鏈接器”->“高級”下的入口點設置為wWinMainCRTStartup,也會導致該錯誤。 很有道理,因為無法正確識別字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.