編譯器不允許我使用“DDSTextureLoader.h”和“WICTextureLoader.h” (Compiler won't let me use "DDSTextureLoader.h" and "WICTextureLoader.h")


問題描述

編譯器不允許我使用“DDSTextureLoader.h”和“WICTextureLoader.h” (Compiler won't let me use "DDSTextureLoader.h" and "WICTextureLoader.h")

我正在嘗試使用 DirectXTex 庫,但每次嘗試時,編譯器都會不斷給我一個又一個錯誤。更具體地說,我想使用標題 DDSTextureLoader.hWICTextureLoader.h 以便我可以使用函數 CreateWICTextureFromFileCreateDDSTextureFromFile 所以我可以將紋理加載到我的 Direct3D11 應用程序中。但是編譯器給了我 3 個錯誤:

Function 'DXGI_FORMAT MakeSRGB (DXGI_FORMAT)' has a body

'=': unable to解決函數重載這個錯誤重複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 . 但是如何修復編譯器錯誤?

我停止使用舊版 directX SDK 的標頭,並像大多數人一樣開始使用 windows SDK。但是如何修復編譯器錯誤?

我停止使用舊版 directX SDK 的標頭,並像大多數人一樣開始使用 windows SDK。但是如何修復編譯器錯誤?


參考解法

方法 1:

These lines appear to be the source of your problem:

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

You should only include header files in your source files, not other source files. Instead you should link your application against the DirectXTK library.

(by Soon_to_be_code_masterlegalize)

參考文件

  1. Compiler won't let me use "DDSTextureLoader.h" and "WICTextureLoader.h" (CC BY‑SA 2.5/3.0/4.0)

#direct3d11 #direct3d #C++






相關問題

Адлюстраванне дынамічнага буфера ў Direct3D11 у праграме Windows Store (Mapping a dynamic buffer in Direct3D11 in a Windows Store App)

未處理的異常@ClearRenderTargetView() (Unhandled exception @ ClearRenderTargetView())

將 3d 模型導入 Direct3D 11 示例 (Importing 3d model to Direct3D 11 Example)

編譯器不允許我使用“DDSTextureLoader.h”和“WICTextureLoader.h” (Compiler won't let me use "DDSTextureLoader.h" and "WICTextureLoader.h")

在我從舊版 DirectX SDK 更改為 Windows SDK (Visual Studio 2015) 後,鏈接器一直在抱怨 (The linker keeps complaining after I changed from legacy DirectX SDK to Windows SDK (Visual Studio 2015)))

鏈接器給出了我在我的應用程序中根本沒有使用過的函數的錯誤 (Linker gives errors about a function that i have not used in my application at all)

Direct3D 11 中輸出圖像的雙線性過濾 (Bilinear filtering of output image in Direct3D 11)

Direct3D 編程新手:11 與 12 (New to Direct3D programming: 11 vs 12)

如何在 Direct3D 11 上使用字體文件渲染文本? (How can I render text using font files on Direct3D 11?)

獲取 D3D 調試信息? (Get D3D debug information?)

為什麼 XMMatrixLookAtLH 會導致調試錯誤? (Why does XMMatrixLookAtLH result in a debug error?)

InterlockedAdd HLSL 潛在優化 (InterlockedAdd HLSL potential optimization)







留言討論