首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“无法初始化Direct3d”

“无法初始化Direct3d”
EN

Stack Overflow用户
提问于 2014-05-02 01:04:14
回答 1查看 3K关注 0票数 0

我正在尝试从这个Directx-11教程网站运行一个exe:tutorial5(页面末尾的exe),但是我得到了错误“无法初始化Direct3d"

当我下载该解决方案并在Visual 2013或Visual 2010上运行该解决方案时,会得到相同的错误。

  • 我已经安装了最新的DirectX (使用"DirectX终端用户运行时网络安装程序“:链接安装)
  • 我还从这里安装了DirectX 9 SDK:DirectX 9 SDK 2010年6月
  • dxdiag显示Direct3d“已启用”。
  • 我将“核心i5上的Intel图形库”更新为最新的驱动程序。

我遗漏了什么?如何在我的机器上运行Directx-11应用程序?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-05-02 04:55:44

这里发生了错误,您应该检查Initialize函数的结果,看看是什么错误。

代码语言:javascript
复制
// 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之前添加以下代码,并且不要忘记将该函数的第三个参数设置为标志)

代码语言:javascript
复制
    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的输出窗口中查看输出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23419203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档