我目前正在尝试将.dds文件放到多维数据集中,但无法在文件中加载。
我正在使用nuget的DirectXTK库,更具体地说是DDSTextureLoarder。
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>&amp ;, 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之外,没有其他任何改变。
编辑:如果有更好的方法,我可以提供建议/建议
答案 0 :(得分:0)
对于UWP,您无法使用CreateFile
。您必须使用CreateFile2
。
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
ScopedHandle hFile(safe_handle(CreateFile2(fileName,
GENERIC_READ,
FILE_SHARE_READ,
OPEN_EXISTING,
nullptr)));
#else
ScopedHandle hFile(safe_handle(CreateFileW(fileName,
GENERIC_READ,
FILE_SHARE_READ,
nullptr,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
nullptr)));
#endif
我已在DirectX Tool Kit中执行此操作,但您需要使用库的正确构建配置。可能你使用的是desktop NuGet版本而不是UWP NuGet版本。