Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Поясните код


Автор: бУРов 25.3.2013, 15:00
Поясните следующий код (пронумерованные строки). Такой код использую, чтобы прочитать серийный номер жесткого диска.
Не пойму, зачем строка "22" с "+"-ом. 
Код
nhw += szr;

Если написать
Код
nhw = szr;

то получаю серийный номер, ряд пробелов, ряд символов.

Строку "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.
}


(текст немножко изменил)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)