我正在尝试从这个Directx-11教程网站运行一个exe:tutorial5(页面末尾的exe),但是我得到了错误“无法初始化Direct3d"。
当我下载该解决方案并在Visual 2013或Visual 2010上运行该解决方案时,会得到相同的错误。
我遗漏了什么?如何在我的机器上运行Directx-11应用程序?
谢谢!
发布于 2014-05-02 04:55:44
这里发生了错误,您应该检查Initialize函数的结果,看看是什么错误。
// Initialize the Direct3D object.
result = m_D3D->Initialize(screenWidth, screenHeight, VSYNC_ENABLED, hwnd, FULL_SCREEN, SCREEN_DEPTH, SCREEN_NEAR);
if(!result)
{
MessageBox(hwnd, L"Could not initialize Direct3D.", L"Error", MB_OK);
return false;
}另一个有用的技巧是在创建设备和交换链时打开调试模式。在创建设备时尝试以下代码--启用调试模式(在d3dclass.cpp中,在调用D3D11CreateDeviceAndSwapChain之前添加以下代码,并且不要忘记将该函数的第三个参数设置为标志)
UINT flags = D3D11_CREATE_DEVICE_BGRA_SUPPORT;
#if defined( DEBUG ) || defined( _DEBUG )
flags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
// Create the swap chain, Direct3D device, and Direct3D device context.
result = D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, flags, 0, &featureLevel, 1,
D3D11_SDK_VERSION, &swapChainDesc, &m_swapChain, &m_device, NULL, &m_deviceContext);
if(FAILED(result))
{
return false;
}在调试模式下构建和运行程序,并在VS的输出窗口中查看输出。
https://stackoverflow.com/questions/23419203
复制相似问题