发布版本中缺lessDirectX9渲染

我有一个c ++应用程序输出到完全使用DirectX9,运行在Win7 64家庭。

它在这种情况下正常运行:

  • 从MSVC 2008中debugging构建。
  • 从MSVC 2008发布生成。
  • debugging生成,通过打开编译的可执行文件本身。

然而,当我运行发布版本的编译可执行文件时会发生奇怪的事情。 该窗口按预期创建,但没有屏幕输出。 没有。

我可以听到声音工作和日志文件填满。 我认为运行可执行文件时工作目录可能是错误的,但是日志文件报告CWD是正确的,并且所有到数据文件的文件path都可以工作。

我很困惑,为什么我的应用程序能够在四个排列中的三个中正常工作,但不是最重要的一个 – 独立的发行版可执行文件!

如果有人能贡献,我会很感激。

谢谢

将debugging器附加到不是从VS开始的版本,并通过debugging来看看发生了什么。 为了帮助您了解程序的早期部分,可以在对话框或__debugbreak的早期部分添加一个对话框,以便您可以尽早进行连接,并查看正在创建的DX曲面等等。

马丁

在启动时连接的IDE运行的差别通常是分配器交给你的内存状态不一样。 如果我没有记错的话,它被清零或填满垃圾(我不能记住,因为我们不再使用标准的分配器)。

检查内存应该是你的第一个方法向量。 确保你所有的分配都假定内存是脏的,并初始化它们。

请使用DirectX SDK实用程序 – DirectX控制面板,看看你是否没有得到一个错误。

在控制面板中设置debugging级别,重新编译你的应用程序,你应该在输出窗口中看到运行时错误

建立你的程序打开最高的警告级别,看它是否捕获任何未初始化的variables。

确保您正在检查系统调用的所有返回值。

按照建议使用debugging的DirectX / D3D驱动程序,并观察其输出,看看工作代码和破碎之间的变化。