【问题标题】:Using DirectXTex Library使用 DirectXTex 库
【发布时间】:2014-06-21 11:49:32
【问题描述】:

我正在尝试将我的 DirectX 项目更新到新的 Windows 8.1 sdk(2013 或其他版本)并在 2010 年 6 月摆脱 DirectX SDK。我已经走了很远,但我遇到了链接器错误 LNK2001

错误 3 错误 LNK2001:无法解析的外部符号“long __cdecl DirectX::CreateDDSTextureFromFile(struct ID3D11Device *,wchar_t const *,struct ID3D11Resource * *,struct ID3D11ShaderResourceView * *,unsigned int,enum DirectX::DDS_ALPHA_MODE *)” (? CreateDDSTextureFromFile@DirectX@@YAJPAUID3D11Device@@PB_WPAPAUID3D11Resource@@PAPAUID3D11ShaderResourceView@@IPAW4DDS_ALPHA_MODE@1@@Z) C:\Users\DimmerFan\documents\visual studio 2013\Projects\MikaelD3D\MikaelD3D\TextureClass.obj MikaelD3D

我想这并没有说太多。这是有错误的代码:

HRESULT result;

result = DirectX::CreateDDSTextureFromFile(device, filename, nullptr, &m_texture, 0, nullptr);
if (FAILED(result))
{
    return false;
}

return true;

我从 DirectXTex SDK 获得此功能 DirectX::CreateDDSTextureFromFile。 但是,我不知何故未能将此库包含到我的项目中。我不知道出了什么问题。 智能弹出,一切看起来都很好。我已将 D:\DirectXTex\DDSTextureLoader 包含到我的包含目录中,并且包含 #include <DDSTextureLoader.h> 感谢您对此错误的任何帮助

//米凯尔·托恩奎斯特

【问题讨论】:

    标签: c++ directx


    【解决方案1】:

    您可以尝试将 DDSTextureLoader.h 和 DDSTextureLoader.cpp 添加到您的项目中,DirectXTex 作为源代码提供,如果您想使用它,您应该将其添加到您的解决方案/项目中。

    您也可以自己构建 DirectXTex 项目,并使用头文件和库。

    【讨论】:

    • 是的,我将源代码添加到我的项目中并且它可以工作!
    【解决方案2】:

    DirectXTex 的软件包包括 DDSTextureLoader、WICTextureLoader 和 ScreenGrab 的“独立”版本。您将 .cpp 和 .h 文件放到您的项目中,因为它们不包含在 DirectXTex.lib 中。

    DirectX Tool Kit 具有这些相同模块的“集成”版本,因此它们位于 DirectXTK.lib 中。

    为什么你问的同一个文件有两个版本?请参阅我的 blog 关于该主题的帖子。

    【讨论】:

      猜你喜欢
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 2015-12-16
      • 1970-01-01
      • 2014-06-24
      • 1970-01-01
      • 2017-09-21
      • 2012-03-25
      相关资源
      最近更新 更多