| ||||
| ||||
Пишу генератор запросов для сохранения их на диске на С++ (MFC). Функция CoCreateInstance в hr выдаёт "Требуемый класс отсутствует в ClassFactory". Подскажите, в чём ошибка. Код из MSDN: ICEnroll4 * pEnroll = NULL; ICertRequest2 * pRequest = NULL; BSTR bstrDN = NULL; BSTR bstrOID = NULL; BSTR bstrFileName = NULL; BSTR bstrReq = NULL; BSTR bstrAttrib = NULL; // long nDisp; HRESULT hr; // Initialize COM. hr = CoInitializeEx( NULL, COINIT_APARTMENTTHREADED ); // Check status. if ( FAILED( hr ) ) { AfxMessageBox("Failed CoInitializeEx"); goto error; } // Create an instance of the Certificate Enrollment object. hr = CoCreateInstance( CLSID_CEnroll, NULL, CLSCTX_INPROC_SERVER, IID_ICEnroll4, (void **)&pEnroll); // Check status. if ( FAILED( hr ) ) { AfxMessageBox("Failed CoCreateInstance - pEnroll"); goto error; } | ||||
Ответы: | ||||
| ||||
Вот работающий код, правда на ATL (но сейчас MFC и ATL можно использовать совместно): CComPtr<ICEnroll4> pEnroll; hr = CoCreateInstance( CLSID_CEnroll, NULL, CLSCTX_INPROC_SERVER, IID_ICEnroll4, (void **)&pEnroll); if(FAILED(hr)) { ::MessageBox(NULL,_T("No CEnroll!"),_T("Error"),MB_OK | MB_ICONINFORMATION); return hr; } | ||||
| ||||
Использовал другой, заведомо рабочий генератор - та же ошибка. Переставляю систему. | ||||