2014-01-20 83 views
0

我已經開始與DirectX 11以及獲得這些編譯錯誤:錯誤LNK2019:_wWinMain @函數___tmainCRTStartup引用16解析外部符號

錯誤1個錯誤LNK2019:解析外部符號wWinMain @函數引用16 _ _tmainCRTStartup

錯誤2錯誤LNK1120:1層無法解析的外部(我估計,這個錯誤是因爲錯誤略高於此一)

找遍周圍修復這個問題相當長一段時間,但我無法找到任何修復這個專業人士在這個網站或任何其他網站通過谷歌blem。

我在這個項目中使用了Visual Studio 2012和C++。爲了使我的測試項目,我通過新建項目 - > Visual C++ - >空項目創建一個空項目。 我正在使用該項目的標準編譯器。

這是我的main.cpp文件我wWinMain頭:

int wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
 LPWSTR cmdLine, int cmdShow)

智能感知也不斷拋出了「4智能感知:‘#’這裏沒有預期」的一些包括開始行錯誤該文件,這些行:(編輯:錯誤不斷消失和重新出現,反覆)

#include <Windows.h> 
#include <memory> 
#include "BlankDemo.h" 
#include <tchar.h> 

我把我的職位,我認爲這可能被實現,或有什麼做的錯誤,它可能只是包含文件。 BlankDemo.h是測試演示的頭文件,只是產生一個空白的DirectX 11窗口。

我用過的所有代碼都來自一本關於DirectX的書;因爲我還不習慣使用DirectX,所以我嘗試了一些修復程序,但似乎沒有人能夠擺脫此錯誤,修復程序如下:

轉至屬性 - >配置屬性 - >常規 - >字符集並更改即「使用Unicode字符集」。

更改字符集後,錯誤仍然存​​在。

去屬性 - >連接器 - >系統並將子系統更改爲Windows(/ SUBSYSTEM:WINDOWS)。

我也嘗試將其更改爲控制檯(/ SUBSYSTEM:CONSOLE),這些更改似乎都無法解決問題。

我也去了Properties-> Linker-> Command Line並添加了/ ENTRY:「wWinMainCRTStartup」到「Additional Options」,這並沒有解決問題。

我仍然對項目進行了如上所述的項目更改。我只寫了幾行代碼,因爲這些錯誤似乎與我在本文中提供的代碼有關,當我複製並粘貼代碼時,它似乎沒有正確格式化,但請告訴我您是否需要去看更多的代碼。

編輯:我已經改變了功能int WINAPI __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
 LPWSTR cmdLine, int cmdShow) 即使使用__stdcallWINAPI函數名不起作用看來。至少,以我用過的方式,請告訴我這是不正確的。

+0

符號'winMain'通常是控制檯與項目窗口配置的症狀。另外,'w'前綴通常表示字符編碼配置問題:'w'表示寬字符集。 –

+0

感謝您的提示,是的,有意義的是'w'表示寬字符集,但這並不能幫助我解決問題。 – JamesMoran

+0

您的代碼中出現了一些unicode符號U + 2028,這就是爲什麼它不能正確格式化。這是打算? (我不知道這是否與錯誤有關,其他人可能會澄清這一點。)其中一些在include行的'#'前面。所以這可能會解釋錯誤信息? ('#'應該始終是該行的第一個字符。) – Nabla

回答

1

對不起,我在這裏犯了錯誤,如在;在屬性 - >配置屬性 - >常規 - >字符集下,我沒有使用Unicode開始。似乎通過使用多字節字符集開始,這個混淆的Visual Studio 2012認爲我正在使用多字節字符集。這導致它拋出錯誤,即使Properties-> Linker-> Advanced下的入口點被設置爲wWinMainCRTStartup。有道理,因爲角色沒有被正確識別。

+0

此外,我必須等待7小時才能接受此答案,請告訴我,如果您在此期間還有其他答案。 – JamesMoran

+0

我只是重複了幾次這個項目,直到我終於開始工作。 – JamesMoran

相關問題