使用autoexp.dat和DLL扩展Visual Studio 2003 C++调试器

Vic*_*ter 3 c++ debugging visual-studio

我知道解决方案是使用VS 2005或2008,但目前不是一个选项.我应该编写VS 2003 C++调试器的扩展,以改进它在监视窗口中显示数据的方式.我使用DLL而不仅仅是基本的autoexp.dat功能的主要原因是我希望能够有条件地显示内容.即我想能够说"如果名称成员不是空字符串,显示名称,否则显示[其他成员]"

我无法在网上找到很多文档,无论是来自MS还是其他曾经使用过(或试图使用)VS 2003这一部分的人.MSDN EEaddin示例是一个不错的开始,但非常基本,并没有真正帮助我获得非常远.

到目前为止,我只是在学习如何解决它,学习如何显示各种类型,而不知道到底我将采用哪种类型.

我已经管理(通过大量试验和错误)来获取DLL以显示指向基本类型的成员,字符串成员,指向用户定义类型的成员和auto_ptr <int>成员.目前我无法显示矢量成员和auto_ptr <string>成员.

(我发现一个页面说auto_ptrs已被弃用,但我需要能够正确显示它们,因为它们在我的扩展名所用的代码中使用.)

我的问题是:有没有人做过这种事情,你有没有或知道一些有关这个问题的有用文件?

谢谢!

[更新:]我已经解决了为什么我遇到auto_ptr <string>类成员的问题.这是因为字符串类的实现方式.它有一个char [16]缓冲区,用于存储短字符串的数据;如果字符串长度超过(15个字符+终止字符),则为char*指针.我不确定是否有可能并且值得尝试破解它以显示更长的字符串(我可以显示足够短的字符串以保存在char [16]缓冲区中)