你好,我使用的是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上,当它达到这个时,它崩溃并给出不发送。
有什么建议吗
好了,伙计们,我想我明白了。这是因为我没有在最后添加"返回0;"!!!!!
在windows xp和windows 7上运行正常,但如果在windows 8上运行就会崩溃。
这很奇怪,我不知道为什么,但无论如何问题解决了xD