Вопроса ошибок и их обхода мы уже касались в "Шаг 369 - Ошибки связанные с использование OCX". Это не я придумал - просто ежли приходится юзать осиксы то лучше их регистрить самой программой.
BOOL CFooApp::RegisterOCX(CString strName) { HMODULE hModule = LoadLibrary((LPCTSTR)strName); CString strError; if (hModule == NULL) { strError = "LoadLibrary " + strName + " failed!"; AfxMessageBox(strError); return FALSE; } FARPROC fp = GetProcAddress(hModule, "DllRegisterServer"); if (fp == NULL) { strError = "Exported function DllRegisterServer not found!"; AfxMessageBox(strError); return FALSE; } CoInitialize(NULL); HRESULT hRes = fp(); if (SUCCEEDED(hRes)) { return TRUE; } CoUninitialize(); return FALSE; }
А в CFooApp::InitInstance() вставляем кусок кода:
if(!RegisterOCX("cfx32.ocx")) { AfxMessageBox("Какие то враги стерли cfx32.ocx"); return FALSE; // Опаньки, вообше не запускаемся пока кто-нибудь найдет нужные файлы }
Шаг прислал Bulat.