簡體   English   中英

錯誤LNK2019:函數___tmainCRTStartup中引用了無法解析的外部符號_wWinMain @ 16

[英]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)即使在函數名稱中使用__stdcallWINAPI也不起作用。 至少,以我使用它們的方式,請告訴我這是否不正確。

抱歉,看來我在這里犯了錯誤, 在屬性->配置屬性->常規->字符集下,我沒有使用Unicode開始。 似乎通過使用多字節字符集開始,這使Visual Studio 2012感到困惑,以為我改用了多字節字符集。 即使將“屬性”->“鏈接器”->“高級”下的入口點設置為wWinMainCRTStartup,也會導致該錯誤。 很有道理,因為無法正確識別字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM