转换“字符串数组”的内容又名 SAFEARRAY 到 wchar
我正在使用 WMI 读取 WMI 对象 Win32_NetworkAdapterConfiguration 上的 DefaultIPGateway。 MSDN 说它是一个“字符串数组”当您查询 WMI 时,Visual Studio 会将其解释为返回的 VARIANT 对象上的 SAFEARRAY。
如何访问数组内的信息?如何将每个元素转换为 wchar* 或 char*?
代码值得赞赏
ps:请注意,我对 COM 一无所知
I'm using WMI to read DefaultIPGateway on the WMI object Win32_NetworkAdapterConfiguration. The MSDN says it's a "String Array" and visual studio interprets this as a SAFEARRAY on the VARIANT object returned when you query the WMI.
How do you access the information inside the array? How do you convert each element to a wchar* or char*?
Code is appreciated
ps: note that i don't know anything about COM
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 SafeArrayAccessData 访问数组元素。 MSDN 库文章中有一个示例片段,它也适用于字符串。元素应该是 BSTR,只需将 wcscpy() 转换为 wchar_t[]。
Use SafeArrayAccessData to access the array elements. There is a sample snippet in the MSDN Library article for it that also works with strings. The elements should be BSTR, just wcscpy() into a wchar_t[].