4

Borland OMF LIB 形式を MS VC++ COFF LIB 形式に変換するための Borland "coff2omf.exe" のようなツールはありますか?

実際には、デルファイで .obj ファイルを作成し、それを MSVC++ で使用したいと考えています。

4

2 に答える 2

7

はい、そのようなツールがあります。

このツールを参照してください。

このユーティリティは、すべての 32 ビットおよび 64 ビット x86 プラットフォームのオブジェクト ファイルを COFF/PE、OMF、ELF、および Mach-O フォーマット間で変換するために使用できます。オブジェクト ファイル内のシンボル名を変更できます。プラットフォーム間で関数ライブラリを構築、変更、および変換できます。オブジェクト ファイルと実行可能ファイルをダンプできます。また、SSE4、AVX、AVX2、FMA、および XOP 命令セットをサポートする非常に優れた逆アセンブラーも含まれています。ソースコードが含まれています (GPL)。マニュアル。

このhttp://www.agner.org Web サイトは、低レベルの最適化について私が知っている最高のリソースです。パフォーマンスに対処したい場合は、リンクされたすべての情報を読む価値があります。

しかし、VC++ で Delphi によって生成されたものを使用する場合.obj、それは簡単には実現できませんが、コードのごく一部の場合です。コードで使用される Delphi RTL が必要になります。外部の.dll方がはるかに優れています。一部の型 (文字列や動的配列など) は、VC++ では簡単に変更できないことにも注意してください。

于 2013-06-03T09:04:32.613 に答える
4

私の知る限り、そのようなツールはありません。Agner Fog のオブジェクト ファイル コンバーター (Arnaud が参照しているツール) を使用して、Delphi ユニットを MSVC プログラムにリンクできる COFF .obj に変換することに成功したことはありません。

Delphi のソース コードを取得してコンパイルし、生成されたオブジェクトを MSVC で使用するのは現実的ではないと思います。他の方向はかなり可能です。C コードをオブジェクトにコンパイルし、そのオブジェクトを Delphi 実行可能ファイルにリンクできます。これを行う場合、コンパイルされたオブジェクトの依存関係を解決する必要があります。

しかし、Delphi オブジェクトを C/C++ プログラムにリンクするには、使用する Delphi RTL の一部が必要になります。これは、Delphi RTL のどの部分も使用しない場合を除いて、難しい作業です。

あなたの状況では、あなたの選択肢は次のとおりだと思います:

  1. コードを C または C++ に移植します。
  2. Delphi コードを動的ライブラリにコンパイルし、C++ プログラムからリンクします。
于 2013-06-03T08:37:28.263 に答える