есть ли какой-либо инструмент, например Borland "coff2omf.exe" для преобразования формата Borland OMF LIB в формат MS VC++ COFF LIB?Формат OMF для COFF формат
Фактически я хочу создать файл .obj в delphi и использовать его в MSVC++.
есть ли какой-либо инструмент, например Borland "coff2omf.exe" для преобразования формата Borland OMF LIB в формат MS VC++ COFF LIB?Формат OMF для COFF формат
Фактически я хочу создать файл .obj в delphi и использовать его в MSVC++.
Насколько мне известно, такого инструмента нет. Используя конвертер объектных файлов Agner Fog, инструмент, на который ссылается Арно, мне никогда не удалось преобразовать блок Delphi в COFF .obj, который можно связать с программой MSVC.
Я действительно считаю, что нереально взять исходный код Delphi, скомпилировать его, а затем использовать сгенерированный объект в MSVC. Другое направление вполне возможно. Вы можете скомпилировать C-код для объекта и связать этот объект с вашим исполняемым файлом Delphi. Когда вы это делаете, вам нужно разрешить любые зависимости, которые имеет скомпилированный объект.
Но для связывания объекта Delphi с программой на C/C++ потребуется какая-то часть используемого Delphi RTL. И это будет сложно, если вы не используете какую-либо часть Delphi RTL, что кажется маловероятным.
В вашей ситуации я думаю, что ваши варианты:
: Благодарю вас за ваш совет, но я думаю, что это возможно. один из моих старых друзей выполнил эту работу, он превратил delphi .obj в coff и использовал в vC++ dll для AV-движка. (извините меня за мой плохой английский) – Behrooz
Я ничего не нашел. Я никогда не мог сделать инструмент, который Арно ссылается на работу с Borland OMF. –
Да, есть такой инструмент.
См. this tool.
Эта утилита может использоваться для преобразования объектных файлов между форматами COFF/PE, OMF, ELF и Mach-O для всех 32-разрядных и 64-разрядных платформ x86. Может изменять имена символов в объектных файлах. Может создавать, изменять и преобразовывать библиотеки функций на разных платформах. Может удалять файлы объектов и исполняемые файлы. Также включает очень хороший дизассемблер, поддерживающий наборы инструкций SSE4, AVX, AVX2, FMA и XOP. Исходный код включен (GPL). Руководство.
Отметьте, что этот http://www.agner.org веб-сайт - лучший ресурс, который я знаю о низкоуровневой оптимизации. Вся связанная информация стоит прочитать, если вы хотите иметь дело с производительностью.
Но для использования генерируемого Delphi .obj
с VC++ это будет непросто, но для очень небольшой части кода. Вам понадобится Delphi RTL, используемый в вашем коде. Внешний .dll
намного лучше. Также обратите внимание, что некоторые типы (например, строки или динамические массивы) не будут легко модифицироваться в VC++.
Есть ли у вас опыт работы с этим инструментом? Мне никогда не везло с этим. –
Я играл с ним много времени. Работает отлично. Но большую часть времени вам, конечно же, нужно знать материал низкого уровня. –
Я думаю, что к тому времени, когда вы сократите Pascal до того, что не использует Delphi RTL, достаточно легко перенести его на C! –
Насколько сложным является ваш код Delphi? Использует ли он какую-либо часть Delphi RTL? –