Лучшие ресурсы для преобразования заголовков dll C/C++ в Delphi?
Вопрос
Довольно подробный сайт, объясняющий трудности и решения, связанные с использованием dll, написанной на c/c++, и преобразованием заголовочного файла .h в delphi/pascal, был недавно опубликован в списке рассылки, в котором я был недавно, поэтому я решил поделиться и предложите другим публиковать для этого другие полезные ресурсы, будь то ссылки, инструменты преобразования или названия книг/документов.
Пожалуйста, по одному ресурсу на каждый ответ, чтобы в итоге самые популярные/лучшие ресурсы оказались наверху.
Решение
В Делфи-уголок Руди, у него есть отличная статья о подводных камнях конвертации C/C++ в Delphi.На мой взгляд, это важная информация при выполнении этой задачи.Вот описание:
Эта статья предназначена для всех, кому нужно перевести заголовки C/C ++ в Delphi.Я хочу поделиться некоторыми ловушками, с которыми вы можете столкнуться при конвертации из C или C ++.Эта статья не является учебником, просто обсуждение часто встречающихся проблемных случаев.Он предназначен для новичка, а также для более опытного переводчика C и C ++.
Он также написал «Пакет помощи по преобразованию", который устанавливается в Delphi IDE и помогает конвертировать код C/C++ в Delphi:
(источник: rvelthuis.de)
Другие его соответствующие статьи на эту тему включают:
Другие советы
Статья в Delphi Corner Руди
Кроме того, на CodeGear имеется элементарный инструмент перевода под названием CToPas (автор: Урал Гюнайдин).
Я хотел бы подчеркнуть Библиотека API джедаев, это перевод Delphi заголовков Windows SDK.Может сэкономить вам много работы, если вам нужно перевести заголовки из SDK, и, конечно же, это хороший пример конверсий!
Поскольку FreePascal, среди прочего, нацелен на совместимость с Delphi, я думаю, что H2Pas тоже может быть полезен.
HeadConv от DrBob тоже используется довольно часто, хотя я согласен с Гразой, что ручной перевод лучше.
используйте эту опцию, чтобы выравнивание байтов было таким же, как в C/C++, и тогда вам не нужно добавлять байты заполнения в структуры.
{$MINENUMSIZE 4}