簡體   English   中英

未解析的外部符號D3DXSaveSurfaceToFileW

[英]unresolved external symbol D3DXSaveSurfaceToFileW

我是DirectX的新手。 我有以下代碼:

IDirect3DSurface9* pSurface;
m_swapChain->GetBuffer(0, __uuidof(pSurface), reinterpret_cast<void**>(&pSurface));
char text[] = "Desktop.bmp";
wchar_t wtext[20];
mbstowcs(wtext, text, strlen(text) + 1);//Plus null
LPWSTR ptr = wtext;
D3DXSaveSurfaceToFile(ptr, D3DXIFF_PNG,pSurface,NULL,NULL);

這些是我包含的標頭:

#include <D3dx9tex.h>

#include "pch.h"
#include "Game.h"


extern void ExitGame();

using namespace DirectX; using namespace DirectX::SimpleMath;

using Microsoft::WRL::ComPtr;

我不斷收到錯誤IDirect3DSurface9:D3DXSaveSurfaceToFile也未聲明標識符。 有人知道問題出在哪里嗎?

錯誤消息: 鏈接到錯誤消息screeenshot

更新 :我將缺少的標頭添加到Game.h文件中,未聲明的標識符錯誤現在消失了,但是現在我得到了一個新錯誤:未解析的外部符號D3DXSaveSurfaceToFileW。

屏幕截圖錯誤

D3DXSaveSurfaceToFileW是已棄用的D3DX9幫助程序庫中的實用程序函數。 它實際上根本不是Direct3D的一部分,並且是僅在舊版DirectX SDK中附帶的可選並排組件。

正如指出的那樣,你需要鏈接d3dx9.lib 有遺留安裝了DirectX SDK,讓您包括使用傳統的DirectX SDK正確設置/ lib目錄路徑。 值得注意的是,如果您使用的是使用Windows 8.x或Windows 10 SDK的VS 2012或更高版本,則include / lib路徑順序會大不相同。 舊版DirectX SDK標頭已過時。

請參閱MSDNDirectX SDK(2015版)在哪里? Zombie DirectX SDK沒有D3DX的生活

如果您是DirectX的新手,請不要使用傳統的Direct3D9。使用DirectX11。有關起點,請參閱DirectX Tool Kit教程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM