WMI 编程,问题在哪?

大石头1987 2010-11-02 12:35:52
用wmi访问自己公司写的一个类,ExecQuery()后,能返回正确的值,但是当我想取这些值的时候(我用Next()方法),却返回了一个错误的值,部分代码如下:
if(SUCCEEDED(hr))
{
hr=pNamespace->ExecQuery(
sLanguage,
sWQL,
WBEM_FLAG_FORWARD_ONLY|WBEM_FLAG_RETURN_IMMEDIATELY,
NULL,
&pEnumerator);
}//这里的hr返回S_OK,pEnumerator也是正确的值。

while(pEnumerator)
{
hr=pEnumerator->Next(WBEM_INFINITE,1,&pObject,&uReturn);
if(0==uReturn)//这里hr返回的是一个很大的值,uReturn返回0。正常情况下应该返回1吧。
break;
.
.
.
}
那位知道这是怎么回事,我用的是vs2008.另外我编了个程序是能够访问wmi的,但是为什么我把代码放在这个程序里面就会出现这个莫名奇妙的问题???一天了。。。。
...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
KC坤 2010-12-29
  • 打赏
  • 举报
回复
thanks...
大石头1987 2010-11-02
  • 打赏
  • 举报
回复
终于搞定了!!哈哈哈哈哈!!!
大石头1987 2010-11-02
  • 打赏
  • 举报
回复
恩,看了下
是 0x80041003 WBEM_E_ACCESS_DENIED
那么我怎么才能够访问呢,这个问题太古怪,我另写的那个倒是能访问。日啊!

chenchangxiong 2010-11-02
  • 打赏
  • 举报
回复
pEnumerator没拿到任何的cim对象
你可以hr值转成16进制 看看出错信息
ps:俺也搞wmi好几天了,日了

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧