COM dll больше не регистрируется - PullRequest
1 голос
/ 24 августа 2011

Я пытаюсь зарегистрировать COM dll, присланный мне компанией, чтобы использовать его для связи с одним из их устройств. Ранее я мог зарегистрировать его на этом компьютере, но несколько дней назад он начал выдавать ошибки, поэтому я отменил его регистрацию, и теперь передача его в regsvr32.exe завершается с ошибкой

"The module IRAnalyzerCOM.dll" failed to load

Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files

The specified procedure could not be found

Я попытался открыть regsvr32.exe с зависимости от файла, и профилировать его, чтобы увидеть, какие всплывающие ошибки и что я получаю в итоге:

...
Loaded "IRANALYSERCOM.DLL" at address 0x0000000010000000.  Successfully hooked module.
Unloaded "IRANALYSERCOM.DLL" at address 0x0000000010000000.
LoadLibraryExW("C:\IRAnalyserCOM.dll", 0x0000000000000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned NULL. Error: %1 is not a valid Win32 application (193).
Loaded "" at address 0x00000000002A0000.  Successfully hooked module.
Unloaded "" at address 0x00000000002A0000.

(он у меня находится в C: \, так что нет никакой вероятности возникновения проблем с пробелом в пути). Вы можете заметить, что regsvr32.exe, похоже, пытался загрузить «», и, действительно, зависит от файла.exe, в списке модулей отображается модуль «<пустая строка>». (Который не загружается, очевидно)

Этот .DLL успешно регистрируется на другом настольном компьютере, и оба работают под управлением Windows 7 64-бит.

1 Ответ

4 голосов
/ 24 августа 2011

Ошибка:% 1 не является допустимым приложением Win32 (193).

Эта ошибка вероятна в 64-битной операционной системе, она говорит вам, что использует неправильную версию regsvr32.exe. Их две: 64-битная версия в c: \ windows \ system32 и 32-битная версия в c: \ windows \ syswow64. Большинство COM-серверов являются 32-разрядными, поэтому явно попробуйте ввести c: \ windows \ syswow64 \ regsvr32 yourserver.dll

...