Переименование DLL в Delphi - PullRequest
       30

Переименование DLL в Delphi

3 голосов
/ 30 января 2012

Предположим, у меня есть большая библиотека ActiveX, написанная на Delphi, назовем ее Lib1.dll .Он содержит несколько интерфейсов.Задача состоит в том, чтобы переименовать библиотеку в Lib2.dll таким образом, чтобы другое приложение могло вызывать оба метода из Lib1 и Lib2 одновременно.Я подумал сделать это следующим образом:

  1. Переименовать проект Delphi в Lib2 (который переименует библиотеку).
  2. Заменить * Lib1_TLB.pas * файл * Lib2_TLB.pas *с тем же содержимым, но с новыми GUID интерфейсов и коклассов.
  3. Вставьте новые GUID в Lib2.ridl .
  4. Создайте новый Lib2.tlb файл из этого ридла, и это должно быть хорошо.

Но это не так.Я получаю ошибку Delphi "Не удалось найти файл Lib1.ridl".Ладно, переименуйте оба файла ridl и tlb.pas обратно в Lib1, скомпилируйте и соберите все нормально, но регистрация сервера ActiveX приводит к сбою IDE.Пожалуйста, предложите мне способ переименовать библиотеку или заставить мой текущий прогресс работать.

1 Ответ

0 голосов
/ 31 января 2012

Я предполагаю, что вы используете последнюю версию Delphi, использующую файлы .ridl для интерфейсов COM, поэтому имейте в виду, что это центральная единица для работы с COM. Вы можете начать с копирования и переименования файла ridl из Lib1.ridl в Lib2.ridl. Затем внутри Lib2.ridl, а не _TLB.pas (который воссоздается автоматически), регенерирует GUID библиотеки и кодовые классы. Интерфейсы могут остаться без изменений. После этого вы сможете сгенерировать tlb и обновить _TLB.pas и, наконец, собрать и зарегистрировать новую библиотеку.

...