gpt4 book ai didi

c++ - IWbemClassObject::Next 产生 VT_NULL 类型(如果不是)。这是什么意思?

转载 作者:行者123 更新时间:2023-11-30 04:33:46 26 4
gpt4 key购买 nike

我正在使用 Microsoft WMI 连接到第三方硬件 API 的 WMI 命名空间。所有初始化工作正常。我启动并运行 COM,并连接到 WMI 命名空间。但是当我调用 IWbemClassObject::Next 来枚举类成员时,字符串成员作为 VT_NULL 类型返回。下一个函数如下所示:

HRESULT Next(
[in] LONG lFlags,
[out] BSTR *pstrName,
[out] VARIANT *pVal,
[out, optional] CIMTYPE *pvtType,
[out, optional] LONG *plFlavor
);

http://msdn.microsoft.com/en-us/library/aa391453(v=vs.85).aspx

VARIANT 是一种“可变变量”类型,几乎可以容纳任何内置的 C++ 类型。它的类型枚举器说 VT_NULL,但在我看来,类成员应该是 BSTR 类型。那么,是什么给了?这是否意味着我必须改为使用 WQL 查询类型?

我的目标是创建、修改和删除类及其成员的实例。 WMI 命名空间是自定义硬件的专有命名空间。

最佳答案

您是否阅读了关于pVal 参数的注释?

The method calls VariantInit on this VARIANT, so the caller should ensure that the VARIANT is not active prior to the call.

你读过评论了吗?

If the underlying type of the property is an object path, date or time, or another special type, then the returned type does not contain enough information. The caller must examine the CIMTYPE for the specified property, and determine if the property is an object reference, date or time, or another special type.

该 CIMTYPE 是通过 pvtType 参数获得的,其中注释明确提到了 VT_NULL 可能性:

It is possible that the value of this property can be a VT_NULL VARIANT

关于c++ - IWbemClassObject::Next 产生 VT_NULL 类型(如果不是)。这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6492865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com