c++ - 断点在全屏模式下挂起基于 DirectX 的程序

标签 c++ visual-studio debugging directx breakpoints

我开始制作游戏,我有一个读取 csv 文件、加载两个直接 x 表面并创建背景的全局类。

表面是一张图 block ,另一个是图 block 创建的背景。背景表面不起作用,滴注后我检查它,如果为空,则会出现一个消息框。它始终显示消息框。

我尝试设置断点以查看是否从 csv 文件中正确读取了值,但程序无法运行。任务栏中出现一个框,程序进入全屏但屏幕变黑并且不显示消息框,只能通过 ctrl、alt、del 停止。

无论我是否放置断点,即使它位于不同的源文件中,也会发生这种情况。有谁知道为什么?

p.s 它不是多线程应用程序。

编辑:

我正在使用 visual studio 2005 和 direct x 9.c

最佳答案

使用 directshow,全屏调试可能会很麻烦:如果你真的必须这样做,我建议使用第二个屏幕(这样,你可以在屏幕 1 上调试,而你的程序在屏幕上全屏运行你的屏幕2).

如果这不起作用,您将不得不使用远程调试(即在一台计算机上运行程序并在另一台计算机上调试)。

很可能发生的情况是您的调试点被触发,但您的屏幕被 directshow 占用,因此无法显示视觉效果。因此,您的程序实际上被视觉阻止了,它不响应任何事情(因为事件循环被调试器阻止)

按顺序,我会:

  • 以窗口模式运行
  • 在双屏中运行,调试器在其他屏幕上运行
  • 尝试设置远程调试(祝你好运)
  • 也许使用旧的好方法通过 printf/traces(例如 log4cpp)进行调试

关于c++ - 断点在全屏模式下挂起基于 DirectX 的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5818350/

相关文章:

c# - visual-studio 2013 是否支持 Windows-mobile 或 Windows-CE 编程?

c++ - 将文件的最后修改日期转换为字符串 C++

android - 有没有办法将 ProGuard 与 MonoDroid 一起使用?

c++ - 打印 n 级调用堆栈?

visual-studio-2010 - 在 Visual Studio 2010 中查找命令/菜单 GUID/ID

c++ - GCC:如何只生成行号调试信息?

debugging - 如何使用 STL IO 将文本输入 Visual Studio 输出窗口?

c++ - 检查输入值是否为 float ,清除 cin

c++ - 从 C++ 代码向 Fortran 90 代码发送 mpi 消息

c++ - 捕获 Outlook 事件