2012-10-10 85 views
0

我正在寫我自己的實現Engine3D接口(由我製作)的庫。如何將DirectX庫包含到我自己的靜態庫(獨立庫)中?

該庫的「用戶」應該包括它(併爲Engine3D接口的頭)在其項目和沒有任何額外庫等

可惜的是運行它,當我做一個靜態庫從我的項目,「用戶」必須包括我的圖書館和DirectX庫,設置目錄支持DirectX等

有沒有什麼辦法讓它簡單(只是一個LIB是他所需要的一切),透明的用戶否DirectX庫,項目中的目錄,全部裏面我自己的圖書館)?

我正在使用Visual C++ 2012.我不想製作一個動態庫,而是一個靜態庫。

回答

2

巨大的巧合,因爲我在一個小時前有完全相同的問題,並找到了一個非常簡單的解決方案。如果您使用#pragma註釋指令包含您的DirectX庫,你只需要爲他們提供您的庫(而不是僅僅名稱)的這樣的完整路徑:

#pragma comment (lib, "c:/Softwares/Development/Lib/DirectX/Lib/x86/dxgi.lib") 
#pragma comment (lib, "c:/Softwares/Development/Lib/DirectX/Lib/x86/d3d11.lib") 
#pragma comment (lib, "c:/Softwares/Development/Lib/DirectX/Lib/x86/d3dx11.lib") 
#pragma comment (lib, "c:/Softwares/Development/Lib/DirectX/Lib/x86/d3dx10.lib") 

顯然,在我的路徑示例與我的個人配置有關,您應該在您的計算機上定義DirectX libs目錄的正確路徑。然後,您只需轉到您的項目配置 - > C/C++ - > General - > Additionnal Include Directories並設置DirectX包含文件的路徑。

就是這樣!現在您可以編譯您的DirectX界面並將其鏈接到另一個項目,而無需進行更多的設置。

我希望它能幫助你,並對我的壞英語感到抱歉。 :)

相關問題