问题标签 [dxut]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
167 浏览

windows - DXUTSetD3D11 DXUT 中缺少设备功能

我正在使用 direct3d 和DXUT编写一个基本程序。

我正在手动创建一个direct3d设备,D3D11CreateDeviceAndSwapChain()并使用该功能将其传递给DXUT DXUTSetD3D11Device(),根据文档,该功能应该是正确的。

让我感到困惑的是,我LNK2019: unresolved external symbol在调用DXUTSetD3D11Device(). 我可以调用其他 DXUT 函数,例如DXUTCreateWindow()就好了,我也自己构建了 DXUT 并正确链接到它。

当我查看 DXUT.h 时,我可以找到 的声明,DXUTSetD3D11Device()但是当我查看 DXUT.cpp 时,我找不到对此函数的任何引用,所以我认为这可能就是我收到此链接器错误的原因。

似乎和我的问题一样。

我将在此处留下相关的代码,以防万一:

这是我创建设备的地方:

目前我要么认为我做错了什么,要么认为这个功能不存在。我真的很感激任何帮助。

提前致谢。

0 投票
1 回答
233 浏览

directx-11 - 从 CDXUTSDKMesh 获取 ID3DXMesh

在 DirectX 11 演示应用程序中,我使用 aCDXUTSDKMesh作为我的静态几何图形。它已加载并已显示。

我正在这个应用程序中做一些与预计算辐射转移相关的实验。这ID3DXPRTEngine将是一个非常方便的工具。不幸的是,D3DX 和 DXUT 在那里似乎不太兼容。

ID3DXPRTEngine需要一个(可以毫无问题ID3DXMesh地连接多个网格)。D3DXConcatenateMeshes有没有一种简单的方法可以“转换”CDXUTSDKMesh为一个或多个ID3DXMesh实例?

0 投票
1 回答
48 浏览

c++ - D3D 泄漏,但是否因为我在全局对象中有引用?

我从 D3D11 调试运行时获取设备泄漏报告(和非零引用计数对话框)。我有两个全局类,它们包含指向布局缓冲区、顶点着色器和像素着色器的智能指针。

如果我在这些类的析构函数上放置一个断点,我可以看到泄漏报告发生在这些全局变量甚至被删除之前,这可能正如您所期望的那样。

纠正这个问题的正确方法是什么,同时仍然保持全局(目前)?我计划添加一个“清理”功能,在关机期间手动释放所有内容,而不是依赖智能指针,但这感觉有点像 hack。

0 投票
1 回答
168 浏览

c - 如何在 DXUT 的 ModifyDeviceSettings 函数中找到最佳 MSAA 级别

我想在 DXUT (d3d11) 函数的 ModifyDeviceSettings 回调中选择一个不错的 MSAA 级别,但是没有可用于调用 CheckMultisampleQualityLevels 的设备指针。

DXUT 函数 DXUTGetD3D11Device 在 init 的此时返回 null。有许多 D3D9 示例可以满足我的要求,但它们依赖于旧的 DXUTGet3DObject(或其他)调用来返回实时设备指针,而您在 D3D11 中没有。

如果我只是在 pDeviceSettings->d3d11.sd.SampleDesc.Count 中填入“4”就可以了,如果我选择的数字太大,它将恢复为 1,但我想选择最好的,但不高于4。

有谁知道我如何枚举 DXUT 框架中可用的多重采样级别并选择我认为最好的一个?

0 投票
1 回答
268 浏览

direct3d - 将 FBX 球体模型加载到 CDXUTSDKMesh 或类似的最短路径

我将一些旧的 XNA 代码移植到 D3D11,它使用 FBX 模型。它们非常基本,因此如果需要,我可以在 3DSMax 中重新创建它们,或者如果存在工具则进行转换。

我想要的只是能够加载网格,理想情况下沿着 CDXUTSDKMesh 的线(但不支持 FBX)。我查看了 Content Exporter,但它仍然需要安装 FBX SDK,我希望能避免这种情况。

是否有一种相当简单的方法来加载 FBX 网格,或者我可以使用 3DSMax 导出为可以通过 CDXUTSDKMesh 加载的格式。

让我感到困惑的是,如果您通过 Item->New 在 Visual Studio 中创建一个场景,它就是一个 FBX 模型,据我所知,如果不使用 FBX SDK 自己动手,它完全不受支持。

一定有更简单的方法!想法?

0 投票
0 回答
120 浏览

c++ - Draw 调用未写入深度缓冲区

我让深度缓冲工作的运气为零。一切都呈现,但仅按照我对它们进行分层的顺序。当我查看 VS 图形调试器中的深度模板时,它从未被写入。从我能想到的一切来看,它应该是,但它在调试器中仍然是红色的(这只是意味着它仍然很清晰)。

rendertarget 和 depthstencil 都是由 DXUT 为我创建的,我已经仔细检查了它们,以确保它们看起来都不错。我已经浏览了它的创建代码并打开了 MSDN 并检查了每个标志 - 但是之前有数千人使用过该代码,我怀疑 DXUT 端没问题。

我的渲染目标是 Texture2D,R8G8B8A8_UNORM_SRGB,1280x1024,样本数 1,质量 0,Mip 级别 1,设置为绑定到渲染目标,没有标志。

我的深度模板是 Texture2D,D24_UNORM_S8_UINT,1280x1024,样本数 1,质量 0,Mip 级别 1,设置为绑定为深度模板,没有其他标志。

在渲染开始时,我清除了渲染目标视图。很难搞砸。接下来我清除 DepthStencil:

我所有绘图的深度模板状态是:

DepthStencilView 显示为

在 VS 图形调试器中。我已将混合设置为固体。

正如我已经确认的那样,它看起来不像 rendertarget 纹理与 depthstencil 纹理的不匹配(例如,多重采样)(除非这两种 DXGI 格式由于某种原因不兼容)。

除了深度之外,一切看起来都不错,所以我假设我的转换矩阵都很好。

在这一点上我唯一的另一个提示是,如果我用 0.999999 清除深度缓冲区,一切都会消失。使用 1.0,一切都可以绘制(尽管深度不正确/缺失)。

视口设置为窗口大小,然后将 0.0 作为最小深度,将 1.0 作为最大深度。这是我检查的第一件事。

我的光栅化状态是:

强制采样计数 0

如果上面没有明显的错误,那么接下来要检查的合乎逻辑的事情是什么?鉴于我使用的是 DXUT 框架,我并没有自己做很多创建管道,而且它以前总是有效的!在调试器中,一切看起来都很棒。

我唯一无法检查的是顶点着色器的输出,因为图形调试器会爆炸并崩溃。

0 投票
2 回答
298 浏览

c++ - DirectX DXUT 备用 API

有人知道 Direct X 是否有一些替代 API,我的意思是 GUI 库!无需像在 DXUT 中那样重新实现 Direct X。

0 投票
0 回答
423 浏览

direct3d11 - 我猜 Direct3D 11 或 DXUT11 需要一些额外的库。

当我构建我的解决方案时,我得到了这些构建时间错误。

1>DDSTextureLoader.obj : 错误 LNK2019:函数“long __cdecl CreateTextureFromDDS(struct ID3D11Device *,struct DDS_HEADER *,unsigned char *,unsigned int,struct ID3D11ShaderResourceView * ,bool)" (?CreateTextureFromDDS@@YAJPAUID3D11Device@@PAUDDS_HEADER@@PAEIPAPAUID3D11ShaderResourceView@@_N@Z) 1>mainInvoke.obj:错误 LNK2019:无法解析的外部符号“void __stdcall DXUTSetCallbackFrameMove(void (__stdcall )(double,float,void *),void )" (?DXUTSetCallbackFrameMove@@YGXP6GXNMPAX@Z0@Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“无效 __stdcall DXUTSetCallbackMsgProc(long (__stdcall)(struct HWND *,unsigned int,unsigned int,long,bool *,void *),void )" (?DXUTSetCallbackMsgProc@@YGXP6GJPAUHWND__@@IIJPA_NPAX@Z2@Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“void stdcall DXUTSetCallbackDeviceChanging(bool (__stdcall )(struct DXUTDeviceSettings *,void *),void )”(?DXUTSetCallbackDeviceChanging@@YGXP6G_NPAUDXUTDeviceSettings@@PAX@Z1@Z) 在函数 _wWinMain@16 1>mainInvoke 中引用.obj : 错误 LNK2019: 无法解析的外部符号 "void __stdcall DXUTSetCallbackD3D11DeviceAcceptable(bool (__stdcall )(class CD3D11EnumAdapterInfo const *,unsigned int,class CD3D11EnumDeviceInfo const *,enum DXGI_FORMAT,bool,void *),void)" (?DXUTSetCallbackD3D11DeviceAcceptable@@YGXP6G_NPBVCD3D11EnumAdapterInfo@@IPBVCD3D11EnumDeviceInfo@@W4DXGI_FORMAT@@_NPAX@Z4@Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019:无法解析的外部符号“void __stdcall(dlong(__Callbackd3D1 )1 ) struct ID3D11Device *,struct DXGI_SURFACE_DESC const *,void *),void )" (?DXUTSetCallbackD3D11DeviceCreated@@YGXP6GJPAUID3D11Device@@PBUDXGI_SURFACE_DESC@@PAX@Z2@Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019:无法解析的外部符号“void __stdcall DXUTSetCallbackD3D11SwapChainResized(long (__stdcall )(struct ID3D11Device *,struct IDXGISwapChain *,struct DXGI_SURFACE_DESC const *,void *),void)" (?DXUTSetCallbackD3D11SwapChainResized@@YGXP6GJPAUID3D11Device@@PAUIDXGISwapChain@@PBUDXGI_SURFACE_DESC@@PAX@Z3@Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“void __stdcall DXUTSetCallbackD3D11(FrameRender(void__stcall )) struct ID3D11Device *,struct ID3D11DeviceContext *,double,float,void *),void )" (?DXUTSetCallbackD3D11FrameRender@@YGXP6GXPAUID3D11Device@@PAUID3D11DeviceContext@@NMPAX@Z2@Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019 :未解析的外部符号“void __stdcall DXUTSetCallbackD3D11SwapChainReleeasing(void (__stdcall )(void *),void)" (?DXUTSetCallbackD3D11SwapChainReleeasing@@YGXP6GXPAX@Z0@Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“void __stdcall DXUTSetCallbackD3D11DeviceDestroyed(void (__stdcall )(void *),void *)”( ?DXUTSetCallbackD3D11DeviceDestroyed@@YGXP6GXPAX@Z0@Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“long __stdcall DXUTInit(bool,bool,wchar_t *,bool)”(?DXUTInit@@YGJ_N0PA_W0@ Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“long __stdcall DXUTCreateWindow(wchar_t const *,struct HINSTANCE*,struct HICON__ *,struct HMENU__ *,int,int)" (?DXUTCreateWindow@@YGJPB_WPAUHINSTANCE__@@PAUHICON__@@PAUHMENU__@@HH@Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019:未解决的外部函数 _wWinMain@16 1>mainInvoke.obj 中引用的符号“long stdcall DXUTCreateDevice(enum D3D_FEATURE_LEVEL,bool,int,int)”(?DXUTCreateDevice@@YGJW4D3D_FEATURE_LEVEL@@_NHH@Z):错误 LNK2019:未解析的外部符号“long __stdcall DXUTMainLoop (struct HACCEL *)" (?DXUTMainLoop@@YGJPAUHACCEL__@@@Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“longstdcall DXUTToggleFullScreen(void)" (?DXUTToggleFullScreen@@YGJXZ) 在函数 "void __stdcall OnGUIEvent(unsigned int,int,class CDXUTControl *,void *)" (?OnGUIEvent@@YGXIHPAVCDXUTControl@@PAX@Z) 1>mainInvoke 中引用。 obj:错误 LNK2019:无法解析的外部符号“void __stdcall DXUTSetCursorSettings(bool,bool)”(?DXUTSetCursorSettings@@YGX_N0@Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019:无法解析的外部符号“void __stdcall DXUTSetIsInGammaCorrectMode( bool)" (?DXUTSetIsInGammaCorrectMode@@YGX_N@Z) 在函数 _wWinMain@16 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“struct DXGI_SURFACE_DESC const * __stdcall DXUTGetDXGIBackBufferSurfaceDesc(void)”(?DXUTGetDXGIBackBufferSurfaceDesc@@YGPBUDXGI_SURFACE_DESC@@XZ) 在函数“void __stdcall OnFrameMove(double,float,void *)”(?OnFrameMove@@YGXNMPAX@Z) 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“struct ID3D11Device * __stdcall DXUTGetD3D11Device(void)" (?DXUTGetD3D11Device@@YGPAUID3D11Device@@XZ) 在函数 "void __stdcall OnFrameMove(double,float,void *)" (?OnFrameMove@@YGXNMPAX@Z) 1>mainInvoke.obj 中引用:错误 LNK2019 :未解析的外部符号“wchar_t const * __stdcall DXUTGetFrameStats(bool)”(?DXUTGetFrameStats@@YGPB_W_N@Z) 在函数“void __cdecl RenderText(void)”(?RenderText@@YAXXZ) 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“wchar_t const * __stdcall DXUTGetDeviceStats(void)”(?DXUTGetDeviceStats@@YGPB_WXZ) 在函数“void __cdecl RenderText(void)”(?RenderText@@YAXXZ) 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“bool __stdcall DXUTIsVsyncEnabled(void)”(?DXUTIsVsyncEnabled@@ YG_NXZ) 在函数“void __cdecl RenderText(void)”(?RenderText@@YAXXZ) 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“int __stdcall DXUTGetExitCode(void)”(?DXUTGetExitCode@@YGHXZ) 在函数中引用_wWinMain@16 1>mainInvoke.obj:错误 LNK2019:未解析的外部符号“long __stdcall DXUTTrace(char const *,unsigned long,long,wchar_t const *,bool)”(?DXUTTrace@@YGJPBDKJPB_W_N@Z) 在函数“long __cdecl CompileGaussianFilterEffects(struct ID3D11Device *,struct DXGI_SURFACE_DESC const *)"(?CompileGaussianFilterEffects@@YAJPAUID3D11Device@@PBUDXGI_SURFACE_DESC@@@Z) 1>SkyBox11.obj:错误 LNK2001:未解析的外部符号“long __stdcall DXUTTrace(char const *,unsigned long,long,wchar_t const *,bool)”(?DXUTTrace @@YGJPBDKJPB_W_N@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: virtual void __thiscall CBaseCamera::SetProjParams(float,float,float,float)" (?SetProjParams@CBaseCamera@@UAEXMM@Z) 引用在函数“long __stdcall OnD3D11ResizedSwapChain(struct ID3D11Device *,struct IDXGISwapChain *,struct DXGI_SURFACE_DESC const *,void *)”(?OnD3D11ResizedSwapChain@@YGJPAUID3D11Device@@PAUIDXGISwapChain@@PBUDXGI_SURFACE_DESC@@PAX@Z) 1>mainInvoke. :未解析的外部符号“公共:__thiscall CModelViewerCamera::CModelViewerCamera(void)" (??0CModelViewerCamera@@QAE@XZ) 在函数“void __cdecl”中引用dynamic initializer for 'g_Camera''(void)" (??__Eg_Camera@@YAXXZ) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: virtual long __thiscall CModelViewerCamera::HandleMessages(struct HWND__ *,unsigned int,unsigned int,long)" (?HandleMessages@CModelViewerCamera@@UAEJPAUHWND__@@IIJ@Z) referenced in function "long __stdcall MsgProc(struct HWND__ *,unsigned int,unsigned int,long,bool *,void *)" (?MsgProc@@YGJPAUHWND__@@IIJPA_NPAX@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: virtual void __thiscall CModelViewerCamera::FrameMove(float)" (?FrameMove@CModelViewerCamera@@UAEXM@Z) referenced in function "void __stdcall OnFrameMove(double,float,void *)" (?OnFrameMove@@YGXNMPAX@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: __thiscall CDXUTDialog::CDXUTDialog(void)" (??0CDXUTDialog@@QAE@XZ) referenced in function "void __cdecl'g_HUD''(void)" (??__Eg_HUD@@YAXXZ) 1>mainInvoke.obj 的动态初始化程序:错误 LNK2019:未解析的外部符号“public:__thiscall CDXUTDialog::~CDXUTDialog(void)”(??1CDXUTDialog@@ QAE@XZ) 在函数“void __cdecl dynamic atexit destructor for 'g_HUD''(void)" (??__Fg_HUD@@YAXXZ) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: void __thiscall CDXUTDialog::Init(class CDXUTDialogResourceManager *,bool)" (?Init@CDXUTDialog@@QAEXPAVCDXUTDialogResourceManager@@_N@Z) referenced in function "void __cdecl InitApp(void)" (?InitApp@@YAXXZ) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: bool __thiscall CDXUTDialog::MsgProc(struct HWND__ *,unsigned int,unsigned int,long)" (?MsgProc@CDXUTDialog@@QAE_NPAUHWND__@@IIJ@Z) referenced in function "long __stdcall MsgProc(struct HWND__ *,unsigned int,unsigned int,long,bool *,void *)" (?MsgProc@@YGJPAUHWND__@@IIJPA_NPAX@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: long __thiscall CDXUTDialog::AddStatic(int,wchar_t const *,int,int,int,int,bool,class CDXUTStatic * *)" (?AddStatic@CDXUTDialog@@QAEJHPB_WHHHH_NPAPAVCDXUTStatic@@@Z) referenced in function "void __cdecl InitApp(void)" (?InitApp@@YAXXZ) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: long __thiscall CDXUTDialog::AddButton(int,wchar_t const *,int,int,int,int,unsigned int,bool,class CDXUTButton * *)" (?AddButton@CDXUTDialog@@QAEJHPB_WHHHHI_NPAPAVCDXUTButton@@@Z) referenced in function "void __cdecl InitApp(void)" (?InitApp@@YAXXZ) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: long __thiscall CDXUTDialog::AddComboBox(int,int,int,int,int,unsigned int,bool,class CDXUTComboBox * *)" (?AddComboBox@CDXUTDialog@@QAEJHHHHHI_NPAPAVCDXUTComboBox@@@Z) referenced in function "void __cdecl InitApp(void)" (?InitApp@@YAXXZ) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: long __thiscall CDXUTDialog::AddSlider(int,int,int,int,int,int,int,int,bool,class CDXUTSlider * *)" (?AddSlider@CDXUTDialog@@QAEJHHHHHHHH_NPAPAVCDXUTSlider@@@Z) referenced in function "void __cdecl InitApp(void)" (?InitApp@@YAXXZ) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: class CDXUTControl * __thiscall CDXUTDialog::GetControl(int,unsigned int)const " (?GetControl@CDXUTDialog@@QBEPAVCDXUTControl@@HI@Z) referenced in function "public: class CDXUTComboBox * __thiscall CDXUTDialog::GetComboBox(int)const " (?GetComboBox@CDXUTDialog@@QBEPAVCDXUTComboBox@@H@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: void __thiscall CDXUTDialog::SetCallback(void (__stdcall*)(unsigned int,int,class CDXUTControl *,void *),void *)" (?SetCallback@CDXUTDialog@@QAEXP6GXIHPAVCDXUTControl@@PAX@Z1@Z) referenced in function "void __cdecl InitApp(void)" (?InitApp@@YAXXZ) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: long __thiscall CDXUTDialog::OnRender(float)" (?OnRender@CDXUTDialog@@QAEJM@Z) referenced in function "void __stdcall OnD3D11FrameRender(struct ID3D11Device *,struct ID3D11DeviceContext *,double,float,void *)" (?OnD3D11FrameRender@@YGXPAUID3D11Device@@PAUID3D11DeviceContext@@NMPAX@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: __thiscall CDXUTDialogResourceManager::CDXUTDialogResourceManager(void)" (??0CDXUTDialogResourceManager@@QAE@XZ) referenced in function "void __cdecldynamic initializer for 'g_DialogResourceManager''(void)”中引用 (??__Eg_DialogResourceManager@@YAXXZ) 1>mainInvoke.obj:错误 LNK2019:未解析的外部符号“公共:__thiscall CDXUTDialogResourceManager::~CDXUTDialogResourceManager (void)" (??1CDXUTDialogResourceManager@@QAE@XZ) 在函数“void __cdecl”中引用dynamic atexit destructor for 'g_DialogResourceManager''(void)" (??__Fg_DialogResourceManager@@YAXXZ) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: bool __thiscall CDXUTDialogResourceManager::MsgProc(struct HWND__ *,unsigned int,unsigned int,long)" (?MsgProc@CDXUTDialogResourceManager@@QAE_NPAUHWND__@@IIJ@Z) referenced in function "long __stdcall MsgProc(struct HWND__ *,unsigned int,unsigned int,long,bool *,void *)" (?MsgProc@@YGJPAUHWND__@@IIJPA_NPAX@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: long __thiscall CDXUTDialogResourceManager::OnD3D11ResizedSwapChain(struct ID3D11Device *,struct DXGI_SURFACE_DESC const *)" (?OnD3D11ResizedSwapChain@CDXUTDialogResourceManager@@QAEJPAUID3D11Device@@PBUDXGI_SURFACE_DESC@@@Z) referenced in function "long __stdcall OnD3D11ResizedSwapChain(struct ID3D11Device *,struct IDXGISwapChain *,struct DXGI_SURFACE_DESC const *,void *)" (?OnD3D11ResizedSwapChain@@YGJPAUID3D11Device@@PAUIDXGISwapChain@@PBUDXGI_SURFACE_DESC@@PAX@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: void __thiscall CDXUTDialogResourceManager::OnD3D11ReleasingSwapChain(void)" (?OnD3D11ReleasingSwapChain@CDXUTDialogResourceManager@@QAEXXZ) referenced in function "void __stdcall OnD3D11ReleasingSwapChain(void *)" (?OnD3D11ReleasingSwapChain@@YGXPAX@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: void __thiscall CDXUTDialogResourceManager::OnD3D11DestroyDevice(void)" (?OnD3D11DestroyDevice@CDXUTDialogResourceManager@@QAEXXZ) referenced in function "void __stdcall OnD3D11DestroyDevice(void *)" (?OnD3D11DestroyDevice@@YGXPAX@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: long __thiscall CDXUTStatic::SetText(wchar_t const *)" (?SetText@CDXUTStatic@@QAEJPB_W@Z) referenced in function "void __stdcall OnGUIEvent(unsigned int,int,class CDXUTControl *,void *)" (?OnGUIEvent@@YGXIHPAVCDXUTControl@@PAX@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: long __thiscall CDXUTComboBox::AddItem(wchar_t const *,void *)" (?AddItem@CDXUTComboBox@@QAEJPB_WPAX@Z) referenced in function "void __cdecl InitApp(void)" (?InitApp@@YAXXZ) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: void * __thiscall CDXUTComboBox::GetSelectedData(void)const " (?GetSelectedData@CDXUTComboBox@@QBEPAXXZ) referenced in function "void __stdcall OnGUIEvent(unsigned int,int,class CDXUTControl *,void *)" (?OnGUIEvent@@YGXIHPAVCDXUTControl@@PAX@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: __thiscall CD3DSettingsDlg::CD3DSettingsDlg(void)" (??0CD3DSettingsDlg@@QAE@XZ) referenced in function "void __cdecl'g_D3DSettingsDlg''(void)" 的动态初始化程序 (??__Eg_D3DSettingsDlg@@YAXXZ) 1>mainInvoke.obj : 错误 LNK2019: 未解析的外部符号 "public: __thiscall CD3DSettingsDlg::~CD3DSettingsDlg(void)" (??1CD3DSettingsDlg@@ QAE@XZ) 在函数“void __cdecl `dynamic ate​​xit destructor for 'g_D3DSettingsDlg'(void)”中引用 (??__Fg_D3DSettingsDlg@@YAXXZ) 1>mainInvoke.obj:错误 LNK2019:未解析的外部符号“public:void __thiscall CD3DSettingsDlg: :Init(class CDXUTDialogResourceManager *)" (?Init@CD3DSettingsDlg@@QAEXPAVCDXUTDialogResourceManager@@@Z) 在函数 "void __cdecl InitApp(void)" (?InitApp@@YAXXZ) 1>mainInvoke.obj 中引用:错误 LNK2019:未解决的外部符号“公共:无效 __thiscall CD3DSettingsDlg::OnRender(float)”(?OnRender@CD3DSettingsDlg@@QAEXM@Z) 在函数“void __stdcall OnD3D11FrameRender(struct ID3D11Device *,struct ID3D11DeviceContext *,double,float,void *)”(?OnD3D11FrameRender@@YGXPAUID3D11Device@@PAUID3D11DeviceContext@@NMPAX@Z)中引用1>mainInvoke.obj : 错误 LNK2019: 无法解析的外部符号 "public: long __thiscall CD3DSettingsDlg::OnD3D11ResizedSwapChain(struct ID3D11Device *,struct DXGI_SURFACE_DESC const *)" (?OnD3D11ResizedSwapChain@CD3DSettingsDlg@@QAEJPAUID3D11Device@@PBUDXGI_SURFACE_DESC)函数“长__stdcall OnD3D11ResizedSwapChain(结构ID3D11Device *,结构IDXGISwapChain *,结构DXGI_SURFACE_DESC const *,void *)”(?OnD3D11ResizedSwapChain@@YGJPAUID3D11Device@@PAUIDXGISwapChain@@PBUDXGI_SURFACE_DESC@@PAX@Z)LNK2019:obj:错误。函数“void __stdcall OnD3D11DestroyDevice(void *)”(?OnD3D11DestroyDevice@@YGXPAX@Z) 1>mainInvoke 中引用了未解析的外部符号“public: void __thiscall CD3DSettingsDlg::OnD3D11DestroyDevice(void)”(?OnD3D11DestroyDevice@CD3DSettingsDlg@@QAEXXZ)。 obj : error LNK2019: unresolved external symbol "public: long __thiscall CD3DSettingsDlg::MsgProc(struct HWND*,unsigned int,unsigned int,long)" (?MsgProc@CD3DSettingsDlg@@QAEJPAUHWND__@@IIJ@Z) 在函数 "long stdcall MsgProc(struct HWND*,unsigned int,unsigned int,long,bool *,void *)" (?MsgProc@@YGJPAUHWND__@@IIJPA_NPAX@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "public: long __thiscall CDXUTResourceCache::OnDestroyDevice (void)" (?OnDestroyDevice@CDXUTResourceCache@@QAEJXZ) 在函数 "void __stdcall OnD3D11DestroyDevice(void *)" (?OnD3D11DestroyDevice@@YGXPAX@Z) 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号 "class CDXUTResourceCache & __stdcall DXUTGetGlobalResourceCache(void)" (?DXUTGetGlobalResourceCache@@YGAAVCDXUTResourceCache@@XZ) 在函数 "void __stdcall OnD3D11DestroyDevice(void *)" (?OnD3D11DestroyDevice@@YGXPAX@Z) 1>mainInvoke.obj : error LNK2019: unresolved external symbol "中引用公共:无效 __thiscall CDXUTTextHelper::Begin(void)"(?Begin@CDXUTTextHelper@@QAEXXZ) 在函数“void __cdecl RenderText(void)”(?RenderText@@YAXXZ) 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“public:long __thiscall CDXUTTextHelper::DrawTextLine(wchar_t const *)" (?DrawTextLine@CDXUTTextHelper@@QAEJPB_W@Z) 在函数 "void __cdecl RenderText(void)" (?RenderText@@YAXXZ) 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号 "public: void __thiscall CDXUTTextHelper::End(void)" (?End@CDXUTTextHelper@@QAEXXZ) 在函数“void __cdecl RenderText(void)”(?RenderText@@YAXXZ) 1>mainInvoke.obj 中引用:错误 LNK2019:未解析的外部符号“long __stdcall DXUTFindDXSDKMediaFileCch(wchar_t *,int,wchar_t const *)"(?DXUTFindDXSDKMediaFileCch@@YGJPA_WHPB_W@Z) 在函数“long __cdecl CompileGaussianFilterEffects(struct ID3D11Device *,struct DXGI_SURFACE_DESC const *)”(?CompileGaussianFilterEffects@@YAJPAUID3D11Device@@PBUDXGI_SURFACE_DESC@@@Z) 1>mainInvoke.obj 中引用:错误函数 _wWinMain@16 1>mainInvoke.obj 中引用的未解析外部符号“long __stdcall DXUTSetMediaSearchPath(wchar_t const *)”(?DXUTSetMediaSearchPath@@YGJPB_W@Z):错误 LNK2019:函数“long __cdecl CompileGaussianFilterEffects”中引用的未解析外部符号 _D3DX11CreateEffectFromMemory@20 (struct ID3D11Device *,struct DXGI_SURFACE_DESC const *)" (?CompileGaussianFilterEffects@@YAJPAUID3D11Device@@PBUDXGI_SURFACE_DESC@@@Z) 1>mainInvoke.obj:错误 LNK2019:未解析的外部符号“long __stdcall OnD3D11CreateDevice(struct ID3D11Device *,struct DXGI_SURFACE_DESC const *,void *)" (?OnD3D11CreateDevice@@YGJPAUID3D11Device@@PBUDXGI_SURFACE_DESC@@PAX@Z) 在函数 _wWinMain@16 1>D:\VisualStudioProjects\DX11GaussianBlur\DX11GaussianBlur\Debug \DX11GaussianBlur.exe : 致命错误 LNK1120: 64 unresolved externals

0 投票
1 回答
49 浏览

direct3d - L“首先修复调用 CDXUTDialog::Init()。详情请参阅评论。”

调用回调函数 DXUTCreateDevice() 后,DXUTgui.cpp 断言检查返回错误。断言说首先调用 CDXUTDialog::Init() 但我应该把它放在 WinMain() 哪里? 在此处输入图像描述

0 投票
1 回答
21 浏览

c++ - 第二个显卡的空输出信息列表

我的 PC 上有两个独立的视频适配器:GTX 1060 和 RTX 2080 ti。我想为我的 DXUT 应用程序使用第二个。我找到了命令行参数-adapter#来指定它,但是,当我使用-adapter1 (1 是 RTX2080 的适配器序号)选项运行时,我的程序崩溃了。我开始调试并发现以下问题:EnumOutputs仅返回DXGI_ERROR_NOT_FOUND

对于 GTX1060,第一个EnumOutputs调用返回正确的输出。

代码部分:

谁知道如何解决这个问题?

所有驱动程序都是最新的。

PS 我也尝试通过 Windows 和 GeForce 软件指定显卡,但它似乎只适用于带有集成/分立卡的笔记本电脑机箱。