表达式计算器实现策略

重要

在 Visual Studio 2015 中,这种实现表达式计算器的方法已弃用。 有关实现 CLR 表达式计算器的信息,请参阅 CLR 表达式计算器托管表达式计算器示例

快速创建表达式计算器(企业版)的一种方法是首先实现在局部变量窗口中显示局部变量所需的最低代码。 意识到“局部变量”窗口中的每一行都显示局部变量的名称、类型和值,这三行都由 IDebugProperty2 对象表示。 本地变量的名称、类型和值是通过调用其 GetPropertyInfo 方法从IDebugProperty2对象获取的。 有关如何在 “局部变量 ”窗口中显示局部变量的详细信息,请参阅 “显示局部变量”。

讨论 (Discussion)

可能的实现序列从实现 IDebugExpressionEvaluator 开始。 必须实现 ParseGetMethodProperty 方法以显示局部变量。 调用 IDebugExpressionEvaluator::GetMethodProperty 返回表示 IDebugProperty2 方法的对象:即 IDebugMethodField 对象。 方法本身不会显示在 “局部变量 ”窗口中。

接下来应实现 EnumChildren 方法。 调试引擎 (DE) 通过传递IDebugProperty2::EnumChildrenguidFilter参数来调用此方法以获取局部变量和参数guidFilterLocalsPlusArgs的列表。 IDebugProperty2::EnumChildren 调用 EnumArgumentsEnumLocals,将结果组合在一个枚举中。 有关更多详细信息,请参阅 “显示局部变量 ”。