Как импортировать IDL в Delphi?

Как импортировать файл языка определения интерфейса (idl) в Delphi; преобразование типов и интерфейсов в файл паскаль?

Я пробовал:

  • Файл, Открыть: просто отображается текст текстового файла .idl.
  • Проект, Добавить в проект: он просто (действует как) добавляет .idl текстовый файл в проект.
  • Компонент, Установить компонент, Импорт библиотеки типов, Добавить: но вызывает управляемый сбой.
  • Компонент, Установить компонент, Импортировать элемент управления ActiveX, Добавить: но вызывает управляемый сбой.
  • с использованием инструмента Embarcadero GenTLB: сбой (что имеет смысл, как GenTLB он не поддерживает IDL, только "RIDL"):

    D:\>gentlb d:\develop\avatar\pdb\source\import\CorSym.idl
    Embarcadero GenTLB Version 12.16581
    Copyright(c) 1995-2010 Embarcadero Technologies, Inc.
    
    Opening  'd:\develop\avatar\pdb\source\import\CorSym.idl'
    ***ERRORS*** - 3 errors encountered:
    Error E0001 CorSym.idl 14: 'library' expected, found 'cpp_quote' instead
    Error E0001 CorSym.idl 49: Type keyword expected, found 'const' instead
    Error E0001 CorSym.idl 63: '<EOF>' expected, found 'module' instead
    

Бонусное чтение


person Ian Boyd    schedule 07.01.2015    source источник
comment
Используйте компилятор MIDL (часть Windows SDK) для преобразования IDL в библиотеку типов. Затем используйте импортер библиотеки типов Delphi.   -  person TLama    schedule 07.01.2015
comment
@TLama stackoverflow.com/questions / 28701561 /   -  person Ian Boyd    schedule 14.12.2018


Ответы (1)


С инструментами Embarcadero вы можете использовать двухэтапный процесс:

  1. Используйте gentlb, чтобы создать библиотеку типов из вашего файла IDL.
  2. Используйте tlibimp для создания файла импорта Pascal из библиотеки типов.

Я лично использую gentlb для создания библиотеки типов из файла .ridl, созданного в Embarcadero IDE. Я считаю, что .ridl - это разновидность IDL от Embarcadero, несовместимая со стандартным MS IDL. Если у вас есть IDL вкуса MS, вы должны использовать компилятор MS IDL для создания библиотеки типов.

person David Heffernan    schedule 07.01.2015