我正在使用 direct3d 和DXUT编写一个基本程序。
我正在手动创建一个direct3d设备,D3D11CreateDeviceAndSwapChain()
并使用该功能将其传递给DXUT DXUTSetD3D11Device()
,根据文档,该功能应该是正确的。
让我感到困惑的是,我LNK2019: unresolved external symbol
在调用DXUTSetD3D11Device()
. 我可以调用其他 DXUT 函数,例如DXUTCreateWindow()
就好了,我也自己构建了 DXUT 并正确链接到它。
当我查看 DXUT.h 时,我可以找到 的声明,DXUTSetD3D11Device()
但是当我查看 DXUT.cpp 时,我找不到对此函数的任何引用,所以我认为这可能就是我收到此链接器错误的原因。
这似乎和我的问题一样。
我将在此处留下相关的代码,以防万一:
bool DXUTEngine::Initialise()
{
HR(DXUTCreateWindow(m_appname));
if(!m_pDirect3D->Initialise(DXUTGetHWND(), m_width, m_height))
{
OutputDebugString(L"\n\n Failed to initialise Direct3D\n\n");
return false;
}
HR(DXUTSetD3D11Device(m_pDirect3D->GetDevice(), m_pDirect3D->GetSwapChain()));
return true;
}
这是我创建设备的地方:
result = D3D11CreateDeviceAndSwapChain(NULL, driverType, NULL, 0, &featureLevel, 1,
D3D11_SDK_VERSION, &swapChainDesc, &m_pSwapChain, &m_pDevice, NULL, &m_pContext);
目前我要么认为我做错了什么,要么认为这个功能不存在。我真的很感激任何帮助。
提前致谢。