【问题标题】:WMI win32_physicalmedia code is crashing in windows 8.1WMI win32_physicalmedia 代码在 Windows 8.1 中崩溃
【发布时间】:2014-06-14 17:35:13
【问题描述】:

您好,我使用的是 Visual C++ 2010。

我正在尝试使用 wmi 提取硬件详细信息,一切正常,但是当我在 windows 8.1 中测试应用程序时,应用程序崩溃了,结果证明是来自 win32_physicalmedia 代码。

代码如下:

pSvc->ExecQuery(
    bstr_t("WQL"), 
    bstr_t("SELECT SerialNumber FROM Win32_PhysicalMedia"),
    WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, 
    NULL,
    &pEnumerator);

 IWbemClassObject *pclsObjjj;
ULONG uReturnnn = 0;

while (pEnumerator)
{
    HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1, 
        &pclsObjjj, &uReturnnn);

    if(0 == uReturnnn)
    {
        break;
    }

    VARIANT vtProp;

它在 windows xp 和 7 上运行良好,但在 windows 8.1 上,当它到达获取这个时它崩溃并且不发送。

有什么建议吗?

【问题讨论】:

  • 尝试捕获ExecQuery 方法的结果,以便了解错误。
  • 好的,谢谢你,我回家后试试这个并给出我的反馈

标签: wmi wmi-query wmi-service


【解决方案1】:

好吧,伙计们,我想我明白了。这是因为我没有添加“return 0;”最后!!!!!!

在 windows xp 和 7 上它工作正常,但如果它在 windows 8 上运行它会崩溃..

很奇怪,我不知道为什么,但无论如何问题都解决了 xD

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多