0

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

有什么建议吗?

4

1 回答 1

0

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

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

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

于 2014-06-16T19:46:43.863 回答