我想使用DirectXTex庫,但每次嘗試時,編譯器都會給我一個接一個的錯誤。更具體地說,我想使用標頭DDSTextureLoader.h
和WICTextureLoader.h
,以便我可以使用函數CreateWICTextureFromFile
和CreateDDSTextureFromFile
,這樣我就可以將紋理加載到我的Direct3D11應用程序中。但是,編譯器給了我3個錯誤:編譯器不會讓我使用「DDSTextureLoader.h」和「WICTextureLoader.h」
Function 'DXGI_FORMAT MakeSRGB (DXGI_FORMAT)' already has a body
'=': unable to resolve function overload
此錯誤重複2次
'SetDebugObjectName': ambiguous call to overloaded function
此錯誤重複3次
編譯器也說,這些錯誤來自文件WICTextureLoader.cpp
我不知道該怎麼辦才能解決這些錯誤...下面是我的代碼 (我包括所有的頭文件我在遊戲中使用)
#include <windows.h>
#include <D3D11.h>
#include <dinput.h>
#include <D3Dcompiler.h>
#include <DDSTextureLoader.h>
#include <WICTextureLoader.h>
#include <sstream>
#include <SimpleMath.h>
#include <SpriteFont.h>
#include "DDSTextureLoader.cpp"
#include "WICTextureLoader.cpp"
CreateDDSTextureFromFile(device, L"SpaceSky512.dds", &SkyTexture, &SkyTextureResource);
CreateWICTextureFromFile(device, DevContext, L"grass.jpg", NULL, &Texture, 0);
我停止使用的頭從傳統的DirectX SDK,並使用Windows SDK的大多數人一樣開始了。但是,我如何解決編譯器錯誤?
「DDSTextureLoader.cpp」和「WICTextureLoader.cpp」模塊已存在於DirectXTK庫中。您可以使用NuGet或項目到項目的引用來將DirectXTK添加到您的項目中。查看DirectX工具包[wiki](https://github.com/Microsoft/DirectXTK/wiki/DirectXTK)。 –