Функция DXUTSetD3D11Device отсутствует в DXUT
Я пишу основную программу с использованием 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);
В данный момент я либо думаю, что делаю что-то очень неправильное, либо что эта функция просто не существует. Я бы очень признателен за любую помощь.
Заранее спасибо.
1 ответ
По ссылке, которую вы публикуете, которая указывает на форум MSDN, платформа DXUT11 была доставлена в исходном коде, поэтому нет файлов lib. поэтому ошибка не была связана с ошибками ссылок.
Еще одна важная вещь: функция DXUTSetD3D11Device не имеет реализации в структуре DXUT. если вы хотите использовать это, вы должны реализовать это самостоятельно.