2

我正在通过将一些 DirectX 代码重新实现到不同的项目中来学习一些 DirectX 编程,但是我确实发现调试器在两个项目(示例和我的项目)之间输出数据的方式似乎不同。

如果我这样做,在我的项目中:

D3DSURFACE_DESC desc;
pTarget->GetLevelDesc(0,&desc);
int width = desc.Width;
int height = desc.Height;

并且让调试器输出宽度和高度,我得到十进制的结果,但是在directx示例中,结果是十六进制的(两者实际上都是准确的,当我将十六进制转换为十进制时,它似乎是合适的)。

另一个(稍微)次要的问题是调试器向我提供有关各种 DirectX 相关指针的信息的方式。例如,在我的项目中,当我停止执行并将鼠标移到指针上时,在 DirectX 示例中我得到了一些汉字、空指针和所有这些(纹理仍然有效并且 100% 工作),但是我没有得到那,实际上它没有提供关于指针的任何信息,除了它是 DirectX 基本类型(我的项目没有这样做)。

所以我只是想知道,为什么会这样,是否有任何调试选项可以让它们工作相同?

4

1 回答 1

8

在 Debug 工具栏上(右键单击工具栏并确保选中 Debug),您可以切换 Hex 按钮。这控制调试器是显示十六进制还是十进制值。您可能只是在不同的地方设置了不同的设置。

您还可以在检查时出现的小检查工具提示中右键单击变量值并打开/关闭十六进制。

于 2009-05-16T19:00:03.527 回答