0

我正在编写自己的库来实现 Engine3D 接口(由我制作)。

该库的“用户”应在其项目中包含它(以及 Engine3D 接口的标头)并在没有任何其他库等的情况下运行它。

不幸的是,当我从我的项目中创建一个静态库时,“用户”必须同时包含我的库和 DirectX 库,为 DirectX 设置目录等。

有什么方法可以让它变得简单(他需要的一切只需要一个库)并且对用户透明没有 DirectX 库,项目中的目录,都我自己的库中)?

我正在使用 Visual C++ 2012。我不想制作动态库,而是制作静态库。

4

1 回答 1

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++ -> 常规 -> 附加包含目录并设置您的 DirectX 包含文件的路径。

而已!现在您可以编译您的 DirectX 接口并将其链接到另一个项目,而无需此后进行更多设置。

我希望它会帮助你,并为我糟糕的英语感到抱歉。:)

于 2012-10-11T00:44:40.167 回答