编译器不允许我使用"DDSTextureLoader.h"和"WICTextureLoader.h"

Compiler won't let me use "DDSTextureLoader.h" and "WICTextureLoader.h"

本文关键字:DDSTextureLoader WICTextureLoader 不允许 允许我 编译器      更新时间:2023-10-16

我正在尝试使用DirectXTex库,但每次尝试时,编译器都会给我一个又一个错误。更具体地说,我想使用标题DDSTextureLoader.hWICTextureLoader.h,这样我就可以使用函数CreateWICTextureFromFileCreateDDSTextureFromFile,这样我就能将纹理加载到Direct3D11应用程序上。但编译器给了我3个错误:

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。但是我该如何修复编译器错误呢?

这些行似乎是问题的根源:

#include "DDSTextureLoader.cpp"
#include "WICTextureLoader.cpp"

您应该只在源文件中包含头文件,而不是其他源文件。相反,您应该将应用程序链接到DirectXTK库。

相关文章:
  • 没有找到相关文章