Есть ли инструмент, который создает файлы заголовков C для библиотек DLL Delphi (Win32)?

До сих пор я видел только инструменты и некоторую информацию для создания кода Delphi для данный заголовочный файл C.

Однако в случае «сначала Delphi» есть объявление интерфейса Delphi и сгенерированная DLL, а не заголовок C. Существуют ли инструменты, которые могут извлечь необходимую информацию и создать заголовочный файл C для DLL?

Такой инструмент может быть полезен и экономит время в кросс-языковых/кросс-платформенных проектах. Например, с заголовочным файлом C было бы проще автоматически создать код привязки Java JNA с помощью jnaerator< /а>. Цепочка инструментов будет выглядеть так:

Источник Delphi -> создать заголовок C -> преобразовать в привязку Java -> использовать Delphi DLL из Java


person mjn    schedule 30.07.2009    source источник


Ответы (2)


Собственный компилятор Delphi может выводить файлы заголовков C/C++ из файлов .pas, используя параметр -JPHNE.

person Remy Lebeau    schedule 07.08.2009

Хотя теоретически это работает, многие библиотеки DLL Delphi будут использовать соглашения о вызовах, такие как регистрация, не упаковывать записи стандартными способами C и т. д. Кроме того, есть проблемы с RTL, проблемы со словом состояния сопроцессора и т. д.

Вероятно, большинство компиляторов C могут обойти это, добавив некоторые прагмы, но я сомневаюсь, что весь материал привязки Java съест это.

Поэтому, если DLL не создается с учетом этого, это, вероятно, будет работать чаще, чем это будет.

Однако чтение и разбор заголовка Delphi не так уж сложно. Паскаль легче анализировать и преобразовывать, чем, например. C. FPC (Free Pascal) имеет пакет синтаксического анализатора Pascal, который используется для его инструмента документации, который может быть перенацелен

person Marco van de Voort    schedule 30.07.2009