У меня есть DLL ATL, которую я пытаюсь использовать из ATL Exe. Когда я пытаюсь создать экземпляр объекта в DLL, он терпит неудачу с ошибкой REGDB_E_CLASSNOTREG. Я проверил реестр, и я вижу, что объект зарегистрирован, как ProgID, так и CLSID.Подтвержденный зарегистрированный COM-объект CoCreateInstance return REGDB_E_CLASSNOTREG
CComPtr<IMyInterface> ptrMyInterface;
ptrMyInterface.CoCreateInstance(L"ProgID", nullptr, CLSCTX_ALL); // Fails
CLSID myClsid;
CLSIDFromString(L"{MyCLSID}"), &myClsid); // Correctly looks up the CLSID
ptrMyInterface.CoCreateInstance(myClsid, nullptr, CLSCTX_ALL); // Also fails
Любые предложения
Используйте монитор процессов SysInternals, чтобы посмотреть, как ваша программа ищет ключи реестра. –