У нас есть устаревшая сторонняя программа, которая завершается с ошибкой «Class Not Registered», когда она пытается выполнить определенные функции. Есть ли способ сказать, какой класс он ищет? Иногда вместо этого написано «Катастрофическая ошибка».
Пробовал Dependency Walker статически и профилируя, ошибки Kernal32.exe. Я предполагаю, что инстанциация не удалась. Не выявлено никаких недостающих зависимостей.
ProcessMon не обнаружил ни одной неудачной попытки доступа к реестру или определенному пути к файлу.
Несколько дней провел с отладчиком и инструментами, пытаясь выяснить, что это за файл. У нас есть работающая производственная система, к которой мы можем получить доступ с учетной записью пользователя без прав администратора.
Стороннее приложение было написано на Delphi, если это имеет значение. Наше приложение для вызова - C ++.
Обновление:
Используя Process Monitor от Sysinternals и фильтр, чтобы сузить естественные сбои чтения реестра из необычных, мне удалось найти отсутствующий GUID и зарегистрировать соответствующую DLL.