У меня есть некоторые файлы DLL и EXE-файлов. Я зарегистрировал эти файлы и создал желаемый экземпляр. В одном случае экземпляр не был создан. Любой другой dll и exe приводит к успешному результату, только этот был проблемой. Когда я в последний раз регистрировал проблемные файлы, экземпляр не создавался, но если проблемные файлы не регистрировались, я пытаюсь зарегистрировать файлы, которые дали мне успешный результат, но опять же, экземпляр не был создан. Код не изменился, тот же код больше не создает экземпляр, и это кажется мне странным, потому что один и тот же код может создавать экземпляр до регистрации проблемных файлов. Я пытаюсь заменить CoCreateInstance за CoGetClassObject с тем же результатом. Ошибка Ошибка выполнения сервера.
Я использую Visual Studio 2010 и CLSCTX_LOCAL_SERVER флаг.
Моя гипотеза состоит в том, что это странное поведение вызвано 64-битной средой и 32-битным COM-объектом. Я пытаюсь это обходной путь но результат тот же Ошибка выполнения сервера. Есть идеи?
РЕДАКТИРОВАТЬ: Я искал IID интерфейса, который используется для COM-объекта, но в реестре не этот IID. Это возможный ключ к этой ситуации?
Задача решена. Причиной было то, что что-то удалило один файл .dll, и когда я попытался зарегистрировать .exe, регистрация была неудачной из-за отсутствия DLL.
Других решений пока нет …