c++ - 在 autoexp.dat 中创建一个简单的 VS2008 可视化工具(转换问题)

标签 c++ visual-studio-2008 casting visualizer

我有一个混合 C/C++ 的大型项目。我为 ICU UnicodeString 类创建了一个简单的可视化工具,如下所示...

[inside autoexp.dat]
icu_4_2::UnicodeString {
        preview     ([$c.fUnion.fFields.fArray,su])
}

...而且效果很好。在调试器中,只要我看到对象,我现在就会在预览行中看到里面的文本。

然后我创建了一个包含这些对象之一的包装类,如下所示...

class StringHandleData
{
public:
    icu_4_2::UnicodeString str;
};

...然后为此创建了另一个可视化工具...

[inside autoexp.dat]
StringHandleData {
    preview     ([$c.str.fUnion.fFields.fArray,su])
}

...再次,工作正常。每当我在调试器中看到 StringHandleData 对象时,我都会在字符串中看到文本。

但是,当我定义一个 typedef 时,我的问题就来了,我可以像这样在 C 代码中使用...

typedef void* StringHandle;

...在引擎盖下实际上只是指向 StringHandleData 对象的指针。因此,当我尝试像这样为 StringHandle 类型创建可视化工具时...

[inside autoexp.dat]
StringHandle {
    preview     ([((StringHandleData)$c).str.fUnion.fFields.fArray,su])
}

...它不起作用。我也尝试了很多其他方式来类型转换物体,但到目前为止没有运气。如果我转到监 window 口并像这样转换 StringHandle...(StringHandleData*)stringHandle 那么调试器会正确转换和预览 - 但我似乎无法完成它它自动从 autoexp.dat 内部

感谢您的帮助。

最佳答案

Visual Studio 的可视化工具对 typedef 视而不见,并且会认为 StringHandlevoid *

关于c++ - 在 autoexp.dat 中创建一个简单的 VS2008 可视化工具(转换问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2584228/

相关文章:

c++ - Qt - 从底部删除菜单?

c++ - 由另一个 CRTP 子类访问数据/方法

java - Java 中的隐式类型转换

c# - EF 转换问题

c++ - MSVC 中的分解

visual-studio-2008 - Visual Studio 添加到添加跟踪

c++ - Visual Studio 2008 没有出现 win 7 64 位的 X64 选项

visual-studio-2008 - 我可以在使用 VS 安装程序部署项目部署时动态设置快捷方式的名称吗?

没有原始类型的 Java 泛型 : How to cast to (T extends Comparable<? super T>)

C++11 获取当前日期和时间作为字符串