UWP CreateDStextureFromFile无法lod loard .dds文件

UWP CreateDDSTextureFromFile unable to loard .dds file

本文关键字:dds 文件 loard lod CreateDStextureFromFile 无法 UWP      更新时间:2023-10-16

我当前正在尝试将.dds文件放到一个立方体上,但是在文件中加载很难。

我正在使用Nuget的Directxtk Libaries,更具体地说是DDStextUreloarder。

CreateDDSTextureFromFile(m_deviceResources->GetD3DDevice(), L"..Assestsrocks.DDS", nullptr, &cubeStoneRV);

出现的错误:

错误lnk2019未解决的外部符号__imp__createfilew@28在功能中引用的"长__cdecl directx :: loaderhelpers :: loadTexturedatextureDatexturedataTuredataFoMfile(wchar_t const *,class std :: class std :: simelod_ptr>&amp>&amp>&amp>&* *,unsigned int *("(?loadTexturetaTafoMfile@loaderHelpers@directx @@ yajpb_waav?$ unique_ptr@$$ by0a@eu?$ default_delete@$ default_delete@$ by0a by0a@by0a@e@s e@std@s e@z(

我相信问题在于试图获得D3DDDEVICE,但是我尝试过的一切都没有起作用。

这项工作是从uwp directx11模板和外部sample3dscenerenderer/phc启动的,没有其他改变。

编辑:如果有一种更好的方法来执行此操作,请为建议/建议

开放

对于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工具套件中执行此操作,但是您需要使用库的正确构建配置。您可能正在使用桌面Nuget版本,而不是UWP Nuget版本。