【发布时间】:2014-02-09 12:21:56
【问题描述】:
我正在使用 direct3d 和 DXUT 编写一个基本程序。
我正在使用D3D11CreateDeviceAndSwapChain() 手动创建一个direct3d 设备,并使用DXUTSetD3D11Device() 函数将其传递给DXUT,根据文档应该是正确的。
让我感到困惑的是,我在调用DXUTSetD3D11Device() 时收到LNK2019: unresolved external symbol 错误。我可以调用其他 DXUT 函数,例如 DXUTCreateWindow()
当我查看 DXUT.h 时,我可以找到 DXUTSetD3D11Device() 的声明,但是当我查看 DXUT.cpp 时,我找不到对这个函数的任何引用,所以我认为这可能就是我得到这个的原因链接器错误。
This 好像和我的问题一样。
我把相关的代码放在这里,以防万一:
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);
目前我要么认为我做错了什么,要么认为这个功能不存在。非常感谢任何帮助。
提前致谢。
【问题讨论】:
标签: windows directx direct3d directx-11 dxut