1
我想編譯一些代碼來呈現不屬於我的應用程序的窗口上的東西。我想使用DirectX 9來實現這一點,但由於某些原因,鏈接器錯誤現在正在讓我失望。我的所有庫都包含在.h文件中(參見下面的main.h)。LNK2019:無法解析的符號
現在,我將這個.h文件包含在每個其他.h文件中,以便在任何地方使用它。有時我只包含一個包含我的主文件的.h文件。
現在的問題是,當我去任何類我想使用DirectX(包括.h文件),我得到LNK2019錯誤。
auto hResult = Direct3DCreate9Ex(D3D_SDK_VERSION, &this->m_pDirect3D9Ex);
錯誤在Direct3DCreate9Ex
相應的h文件包括以下面的方式在主h文件:
#ifdef _MSC_VER
#pragma once
#endif
#include "main.h"
main.h(完成):
#pragma once
#endif
#include <Windows.h>
#include <iostream>
#include <vector>
#include <memory>
#include <chrono>
#include <thread>
#include <d3d9.h>
#include <d3dx9.h>
#include <dwmapi.h>
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
#pragma comment(lib, "dwmapi.lib")
#endif
這甚至可以在使用VisualStudio編譯時起作用,但我需要使用cl.exe來實現此目的。當我將VisualStudio中的所有內容移出後,嘗試構建它時,會發生無法解析的符號錯誤。
我將不勝感激任何幫助,我可以得到,已經浪費了這個小時。
編輯:錯誤
當然:)正如你看到我重新形成我的問題是更確切的,如你之前要求 – Friwi
你試圖編譯和鏈接之前運行編譯器的setup.bat文件嗎?您需要確保您有正確的庫路徑設置。 vcvars32.bat或類似的?你用什麼命令編譯和鏈接? – JJF
cl.exe/I「%DXSDK_DIR%\ Include」/ EHsc/Od/MT * .cpp d3dx9.lib d3d9.lib dwmapi.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 .lib ole32.lib oleaut32.lib uuid.lib/link/FORCE:MULTIPLE/LIBPATH:「%DXSDK_DIR%\ Lib \ x64 \」/ SUBSYSTEM:CONSOLE /OUT:PH.exe – Friwi