Visual studio 本机visualiser是否可以根据项目集合的参数名称修改项目的显示?

Visual studio 本机visualiser是否可以根据项目集合的参数名称修改项目的显示?,visual-studio,natvis,Visual Studio,Natvis,在我的公司,开发人员经常使用CMapStringToStr对象,对于特定参数,指针的类型总是相同的,例如 m_mapUsers : every pointer is a CL_USER object m_mapOthers : every pointer is a CL_OTHER object 我已经制作了一个本地可视化程序,用于以合理可读的方式扩展CMapStringToPtr,正如您在本摘录中所看到的: m_mapUsers 0: ["User1"] 0x12345

在我的公司,开发人员经常使用CMapStringToStr对象,对于特定参数,指针的类型总是相同的,例如

m_mapUsers  : every pointer is a CL_USER object
m_mapOthers : every pointer is a CL_OTHER object
我已经制作了一个本地可视化程序,用于以合理可读的方式扩展CMapStringToPtr,正如您在本摘录中所看到的:

m_mapUsers
  0: ["User1"]     0x12345     void*
  1: ["User2"]     0x23456     void*
  ...
m_mapOthers
  0: ["Other1"]    0x98765     void*
  1: ["Other2"]    0x98764     void*
  ...
我希望能够识别m_mapUsers和m_mapOthers条目,以获得如下结果:

m_mapUsers
  0: ["User1"]     {user=..., group=..., ...}     CL_USER
  1: ["User2"]     {user=..., group=..., ...}     CL_USER
  ...
m_mapOthers
  0: ["Other1"]    {reason=..., code=...}     CL_OTHER
  1: ["Other2"]    {reason=..., code=...}     CL_OTHER
  ...

这可能吗?

我在项目中这样做的方式是首先对我的链接列表进行通用可视化。这就是你已经拥有的

这 下一个 数据 然后我去了那些我知道如何解释void指针的类,我应该将它们转换到哪种类型。因此,我创建了一个与成员变量同名的合成值,将HeadPointer从此更改为成员变量的名称,最后对ValueNode进行了类型转换

m_列表 下一个 知识类型*pData 缺点是我需要将代码复制到多个地方,但它可以工作

取决于指针指向的类型,例如总是CObject?也可以检测MyLinkedList中的类型,并根据正确的条件选择要显示的内容