【问题标题】:How to include DirectX libraries into my own static library (stand-alone lib)?如何将 DirectX 库包含到我自己的静态库(独立库)中?
【发布时间】:2012-10-10 14:15:03
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: c++ directx static-libraries


    【解决方案1】:

    非常巧合,因为我在一小时前遇到了完全相同的问题,并找到了一个非常简单的解决方案。如果您使用#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 接口并将其链接到另一个项目,而无需随后进行更多设置。

    希望对您有所帮助,对我的英语不好感到抱歉。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 2012-11-27
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多