OE>видимо они так зарегистрированы в реестре, с короткими именами. т.е. такое имя было подсунуто regsvr32. Как регистрировались компоненты?
int CMainFrame::RegisterDLLandOCX(CString strOleServerFile)
{
LPCSTR pszDllName = strOleServerFile;
HRESULT (STDAPICALLTYPE * lpDllEntryPoint)(void);
SetErrorMode(SEM_FAILCRITICALERRORS);
// Загрузка библиотеки
HINSTANCE hLib = LoadLibraryEx(pszDllName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
if (hLib < (HINSTANCE)HINSTANCE_ERROR) {
TCHAR szError[12];
wsprintf(szError, _T("0x%08lx"), GetLastError());
DisplayMessage(IDS_LOADLIBFAILED, pszDllName, szError,FALSE,FALSE);
return -1;
}
// Определяем точку входа.
(FARPROC&)lpDllEntryPoint = GetProcAddress(hLib, "DllRegisterServer");
if (lpDllEntryPoint == NULL) {
TCHAR szExt[_MAX_EXT];
_tsplitpath(pszDllName, NULL, NULL, NULL, szExt);
if ((_stricmp(szExt, ".dll") != 0) && (_stricmp(szExt, ".ocx") != 0))
DisplayMessage(IDS_NOTDLLOROCX, pszDllName, "DllRegisterServer",FALSE,FALSE);
else
DisplayMessage(IDS_NOENTRYPOINT, pszDllName, "DllRegisterServer",FALSE,FALSE);
return -1;
}
// Вызываем функцию
if (FAILED((*lpDllEntryPoint)())) {
DisplayMessage(IDS_CALLFAILED, "DllRegisterServer", pszDllName,FALSE,FALSE);
return -1;
}
FreeLibrary(hLib);
return 0;
}