【发布时间】:2009-06-30 09:08:05
【问题描述】:
我正在使用 autoexp.dat 和 DLL 扩展 Visual Studio 2003 调试器,以改进它在监视窗口中显示数据的方式。我使用 DLL 而不仅仅是基本的 autoexp.dat 功能的主要原因是我希望能够有条件地显示内容。例如我希望能够说“如果名称成员不是空字符串,则显示名称,否则显示[其他成员]”
我对 OOP 很陌生,对 STL 没有任何经验。所以我可能错过了显而易见的事情。
我无法显示向量成员,因为我不知道如何获取指向存储实际值的内存的指针。
我认为这些值存储在连续的内存块中是否正确?有什么方法可以访问指向该内存的指针?
谢谢!
[编辑:]澄清我的问题(我希望):
在调试器调用的 DLL 中,我使用了一个名为 ReadDebuggeeMemory 的函数,该函数会复制对象使用的内存。它不会复制对象指向的内存。所以我需要知道内部指针的实际地址值,以便能够在其上调用 ReadDebuggeeMemory。目前,获取向量内容的常用方法是返回垃圾,因为该内存尚未被复制。
[更新:]
我得到了垃圾,即使我正在查看正确的指针 _Myfirst,因为我正在创建向量的额外副本,而我应该使用指向向量的指针。那么问题就变成了:如何通过指向向量的指针访问指向向量内存的指针?这有意义吗?
【问题讨论】:
-
请原谅我很密集,但是你为什么不使用向量访问函数,比如 operator[]() ?
标签: c++ visual-studio stl vector