저는 direct3d와 DXUT을 사용하여 기본 프로그램을 작성하고 있습니다.DXUTSetD3D11Device 함수가 DXUT에서 누락되었습니다.
나는 수동으로 D3D11CreateDeviceAndSwapChain()
으로 direct3d 장치를 만들고 설명서에 따라 DXUTSetD3D11Device()
기능을 사용하여 DXUT로 전달하고 있습니다.
내게 혼란스러운 점은 DXUTSetD3D11Device()
을 호출 할 때 LNK2019: unresolved external symbol
오류가 발생한다는 것입니다. DXUTCreateWindow()
과 같은 다른 DXUT 함수를 호출 할 수 있습니다. 또한 DXUT를 직접 작성하고 올바르게 연결했습니다.
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);
을 내가 하나가 내가 뭘 생각 매우 잘못된 것이거나이 함수가 단지 존재하지 않는다는 것입니다. 나는 정말 어떤 도움을 주셔서 감사합니다.
미리 감사드립니다.
먼저 내가 lib 파일에 실제로 코드를 작성 했으므로 링크 오류가있을 수 있다고 생각했습니다. 어쨌든 대답을 주셔서 감사합니다. 나는 겉보기에 중요한 기능이 구현되지 않는다는 것이 이상하다고 생각했습니다. – orangeocelot
또한 구현이없는 함수에 대한 참조를 소스에 제공 할 수 있다면 좋을 것입니다. 왜 그들이 그렇게 할 지 확신하지 못합니다. 또한이 함수가하는 일을 오해하고있는 것일까 요? – orangeocelot
이 문제는 DXUT11의 [CodePlex] (https://dxut.codeplex.com/discussions/531081)에있는 스레드에서 다룹니다. –