在Visual C ++中调试图像渲染,任何有用的插件?

时间:2009-10-10 21:34:17

标签: c++ visual-studio debugging image graphics

我经常编写通过将像素直接写入缓冲区来渲染图像的代码,而且我经常发现很难很好地了解实际情况。 Visual Studio调试器中的Memory窗口有点帮助,但我真的很想以图形方式查看图像。

所以我的问题是,有没有人知道一个调试扩展,它可以读取一块内存作为指定像素格式的图片并以图形方式显示它?

6 个答案:

答案 0 :(得分:3)

存在这样的事情:

用于在Win32 C / C ++应用程序中对图像进行简单printf样式调试的实用程序。

http://billbaxter.com/projects/imdebug/

我的同事对它赞不绝口。

- 克里斯

答案 1 :(得分:1)

我的一位同事写了这篇CodeProject文章,用于编写Debugger Visualizers

http://www.codeproject.com/KB/showcase/BuildDebuggerVisualizer.aspx

它使用我们的产品,一个.NET映像工具包,但它可以很容易地适应使用.NET映像类。

答案 2 :(得分:1)

你要求的东西在原生c ++中自然是不可能实现的。 可视化调试器内的所有可视化技术都围绕CLR进行组织,因此可以是C#或C ++ / CLI。

可以帮助本土的一件事是expression evaluator addin机制。当然,它被设计为返回一个字符串然后消失,但它是代码,所以你理论上可以运行任何代码,包括显示一个窗口并显示你关心的数据(在从调试对象读取之后)。

但是看到原生方面缺少那些伟大的功能,这有点令人失望。

答案 3 :(得分:1)

我正在为用于显示/编辑图像的VC6 / 7/8/9开发一个开源加载项Visual Image Assist。也许你也想要它。

答案 4 :(得分:0)

我已经废弃了我的旧答案,因为它无关紧要。新的on也使用了OpenCV(因为我试图显示OpenCV图像),但它可以适应任何框架。

核心代码需要内存地址address,以及通过numrowsnumcols和{{1}读取的字节数并将这些字节读入缓冲区。我确信您可以根据自己的需要调整 部分代码。

byte_size

答案 5 :(得分:0)

  1. 创建一个包含缓冲区+元数据(宽度,高度,步幅,像素格式)的类。
  2. 将ToStream()和FromStream()方法添加到您的类中以(de)序列化图像(缓冲区和元数据)。
  3. 将ToWpfBitmapSource()添加到您的班级。
  4. 创建一个调试可视化工具,从流中反序列化您的图像,转换为WPF的BitmapSource,放置在Winforms WPF主机中的Image控件中。
  5. 此示例将有助于: http://www.codeproject.com/KB/WPF/WPF_Glimps.aspx

    该类可以在单独的DLL中以C ++ CLI添加。