【发布时间】:2018-09-04 22:23:32
【问题描述】:
我目前正在尝试将 .dds 文件添加到多维数据集上,但在加载文件时遇到了问题。
我正在使用来自 nuget 的 DirectXTK 库,更具体地说是 DDSTextureLoader。
CreateDDSTextureFromFile(m_deviceResources->GetD3DDevice(), L"..\Assests\rocks.DDS", nullptr, &cubeStoneRV);
出现的错误:
错误 LNK2019 未解析的外部符号 __imp__CreateFileW@28 在函数“long __cdecl DirectX::LoaderHelpers::LoadTextureDataFromFile(wchar_t const *,class std::unique_ptr > &,struct DirectX::DDS_HEADER const * *,unsigned char const * *,unsigned int *)" (?LoadTextureDataFromFile@LoaderHelpers@DirectX@@YAJPB_WAAV?$unique_ptr@$$BY0A@EU?$default_delete@$$BY0A@E@std@@@std@@PAPBUDDS_HEADER@2@PAPBEPAI@Z )
我认为问题在于尝试获取 D3DDevice,但我尝试的一切都没有奏效。
工作从基本的 UWP DirectX11 模板和 Sample3DSceneRenderer/phc 外部开始,没有其他任何变化。
编辑:如果有更好的方法,我愿意征求意见/建议
【问题讨论】:
-
仔细检查 MSDN,但我认为您不能从 UWP 中的文件加载纹理。我认为您必须将其编译到二进制文件的资源中。
-
@Mgetz 唯一的限制是如果您尝试从包外部加载文件,例如从需要使用文件代理的用户的文档或图片库中加载文件。您仍然可以在此类文件上使用 DDSTextureLoader,但必须先将其复制到临时位置。详情请参阅wiki。
标签: c++ uwp directx-11