Функция 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. если вы хотите использовать это, вы должны реализовать это самостоятельно.

Другие вопросы по тегам