2012-10-10 86 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界面并将其链接到另一个项目,而无需进行更多的设置。

我希望它能帮助你,并对我的坏英语感到抱歉。 :)

相关问题