2011-12-20 4 views
4

Моя компания запускает старое приложение, написанное на delphi. Простой сервер com, который обслуживает некоторую базу данных для некоторых компьютеров. Я должен запускать сервер один раз на каждом компьютере, чтобы зарегистрировать интерфейсы com, и он работает с древних времен в Windows XP. Использование windows xp У меня никогда не было ни одной проблемы, но в Windows 7 класс просто не регистрируется и независимо от того, что я пытаюсь (я пытался экспортировать ключи реестра), когда я открываю клиент, я все равно получаю ошибку «Class not зарегистрировано».Как сделать интерфейс com из delphi работать в окнах семь

Любые советы? Плз сохранить мое Рождество.

+4

[This] (http://stackoverflow.com/a/3440419/960757) может сэкономить ваше Рождество :) – TLama

+1

Windows 7 имеет повышенную безопасность. Фактически, у него есть совершенно новый уровень безопасности, которого никогда не было у XP. При доступе к вещам на компьютере, таком как реестр, вы должны явно определить, как вы собираетесь его получить. Например, 'Reg: = TRegistry.Create;' затем напишите на него и получите сообщение об ошибке. Но используйте 'Reg: = TRegistry.Create (KEY_READ или KEY_WRITE);' и он отлично работает. Это также может быть частью вашей проблемы. –

+1

Возможный дубликат [Регистрация 32-битной COM-библиотеки DLL до 64 бит Windows 7] (http://stackoverflow.com/questions/3439845/register-32-bit-com-dll-to-64-bit-windows-7) –

ответ

6

Мои COM-серверы, как EXE, так и DLL, написаны в BCB6 (в отличие от Delphi) на 32-разрядной версии XP, и они отлично работают при установке на 64-разрядной Windows 7. Вам просто нужно убедиться, что вы запустить их код установки из повышенного процесса, вот и все. Откройте экземпляр cmd.exe с параметром «Запуск от имени администратора», затем перейдите в папку вашего COM-сервера и запустите его с параметром /INSTALL (для EXE) или 32-разрядной версией regsvr32.exe (для библиотек DLL) из WOW64.

+2

Если вы не знаете, 32 бит regsvr32 - это C: \ Windows \ SysWOW64 \ regsvr32.exe –

 Смежные вопросы

  • Нет связанных вопросов^_^