gpt4 book ai didi

c++ - 未解析的外部符号 D3DXSaveSurfaceToFileW

转载 作者:行者123 更新时间:2023-11-28 04:52:52 25 4
gpt4 key购买 nike

我是 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);

这些是我包含的 header :

#include <D3dx9tex.h>

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


extern void ExitGame();

using namespace DirectX; using namespace DirectX::SimpleMath;

using Microsoft::WRL::ComPtr;

我不断收到错误 IDirect3DSurface9: undeclared identifier 以及 D3DXSaveSurfaceToFile。有谁知道问题出在哪里?

错误信息: link to error msgs screeenshot

更新:我将缺少的 header 添加到 Game.h 文件中,未声明的标识符错误现在消失了,但现在我收到一个新错误:未解析的外部符号 D3DXSaveSurfaceToFileW。

Screenshot to error

最佳答案

D3DXSaveSurfaceToFileW 是已弃用的 D3DX9 帮助程序库中的一个实用函数。它实际上根本不是 Direct3D 的一部分,而是一个可选的并行组件,仅在旧版 DirectX SDK 中提供。

如前所述,您需要链接 d3dx9.lib 并且安装旧版 DirectX SDK并且设置您的 include/lib 路径正确设置以使用旧版 DirectX SDK。值得注意的是,如果您使用的是使用 Windows 8.x 或 Windows 10 SDK 的 VS 2012 或更高版本,则 include/lib 路径顺序会大不相同。旧版 DirectX SDK header 大部分已过时。

参见 MSDN , Where is the DirectX SDK (2015 Edition)? , The Zombie DirectX SDK , 和 Living without D3DX .

If you are new to DirectX, don't bother with legacy Direct3D 9. Use DirectX 11. For a starting point, see the DirectX Tool Kit tutorials

关于c++ - 未解析的外部符号 D3DXSaveSurfaceToFileW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47788242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com