Поясните следующий код (пронумерованные строки). Такой код использую, чтобы прочитать серийный номер жесткого диска. Не пойму, зачем строка "22" с "+"-ом.
Если написать
то получаю серийный номер, ряд пробелов, ряд символов.
Строку "23" добавил, чтобы убрать конец строки - там пробеды и ненужные мне символы.
| Код | int CutDlg::GetSN(CString &nhw) { ...
IWbemClassObject *pclsObj; ULONG uReturn = 0; int i = 1; while (pEnumerator) { HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,&pclsObj, &uReturn); if(0 == uReturn) break; VARIANT vtProp, vtP2, vtP3, vtP4; // Get the value of the Serial Number property hr = pclsObj->Get(L"SerialNumber", 0, &vtProp, 0, 0); hr = pclsObj->Get(L"Description", 0, &vtP2, 0, 0); hr = pclsObj->Get(L"Manufacturer", 0, &vtP3, 0, 0); hr = pclsObj->Get(L"Tag", 0, &vtP4, 0, 0); LPCTSTR szr; { CW2T temp(vtProp.bstrVal); szr = temp.operator LPTSTR(); nhw += szr; nhw = nhw.SpanExcluding(" "); // удаляю пробелы за серийным номером и всё что за пробелами } CString str; if(V_VT(&vtP2) == VT_BSTR) { ...
i++; VariantClear(&vtProp); }//while (pEnumerator)
// Cleanup // ========
pSvc->Release(); pLoc->Release(); pEnumerator->Release(); pclsObj->Release(); CoUninitialize();
return 0; // Program successfully completed. }
|
(текст немножко изменил) |