2014-06-14 36 views
0

你好我使用Visual C++ 2010WMI win32_physicalmedia代碼是Windows崩潰8.1

我試圖提取使用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中工作正常,當它達到讓這個崩潰,並給出不要送。

有什麼建議嗎?

+0

嘗試捕捉'ExecQuery'結果方法來獲得關於錯誤的任何想法。 – RRUZ

+0

好的,謝謝,我會試試這個,當我回家並給我的反饋 – user3735032

回答

0

好吧夥計我想我明白了。那是因爲我沒有添加「return 0;」最後 !!!!!

在Windows XP和7它的正常工作,但如果它在Windows 8上,崩潰運行..

這很奇怪我不知道爲什麼,但問題是無論如何解決的xD