WMI win32_physicalmedia代码在Windows 8.1中崩溃

时间:2014-06-14 17:35:13

标签: wmi wmi-query wmi-service

您好我正在使用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到达时,它会崩溃并且不发送。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

好的家伙,我想我得到了它。那是因为我没有添加“返回0;”最后!!!!!

在Windows xp和7上它运行正常,但如果它在Windows 8上运行则会崩溃..

这很奇怪我不知道为什么但问题仍然解决了xD