1

firemonkeyアプリケーション用のdelphixe2の*.dcuファイルはプラットフォームから独立していますか。 ここ。32ビットと64ビットの両方およびその他のオペレーティングシステム用。

もしそうなら、dcuファイルはどのように設計されていますか。以前の(delphi 1-delphi xe)に似たものですか、それとも中間言語(javaや.netなど)のようなものですか?

この新しいdcuは、dcuファイルの逆コンパイルを容易にしますか。

この質問の主な目的は、firemonkeyの新しいdcuファイルに関する長所と短所についての詳細を知ることです。

4

2 に答える 2

9

Is the *.dcu files in delphi xe2 for firemonkey application are independent from platforms. here. for both 32bit and 64 bit and other operating systems.

No they are not; Delphi XE2 generates different .dcu files for different platforms, and .dcu files for each platform are created in separated folders.

于 2011-09-27T14:51:09.547 に答える
3

それをいくらか洞察に満ちたものにするために、いくつかの背景情報:

DCUは多かれ少なかれ次の部分の組み合わせです

  1. オブジェクトコード。これは、CまたはC ++が生成するものと同じように、通常は静的にコンパイルされた再配置可能なオブジェクトコードです。
  2. デバッグコードを含む(私が間違っていない場合はTopviewバリアント)
  3. 何らかの形式のプリコンパイル済みヘッダー(インターフェイス)。
  4. 一部の表現における特殊化されていないジェネリック(*)
  5. クロスユニットのインライン化できないコード(ツリー表現?)

これら4つすべてが別々のセクションなのか、インターリーブされているのかはわかりません。私の推測では、1 + 2が組み合わされ(リンカーでより一般的なルーチンが可能になるため)、3 + 4+5とおそらく他のメタデータを含む「残り」があります。

ヘッダーは、システムユニットとOS固有のユニットのOS固有のタイプとシンボルに依存する可能性があるため、理論上でも、最も自己完結型のユニットのみがクロスプラットフォームになります。おそらく、わざわざ努力する価値はありません。

逆コンパイルに関する限り、一般的な逆コンパイルの問題とほとんど同じですが、いくつかの工夫があります。

  1. まだ最終的にリンクされていない(オブジェクト)コードは、少し簡単に逆コンパイルできます
  2. デバッグコードが添付されたコードは、少し簡単に逆コンパイルできます。
  3. ただし、DCU形式はバージョンに依存し、独自仕様です。
  4. 逆コンパイルプロセス全体は、コンパイラとバージョンに大きく依存します。

要するに、それはおそらく以前のDelphiコンパイラやランダムC++コンパイラの静的lib+ヘッダーファイルよりも少し簡単ではありません。

于 2011-09-27T16:18:28.043 に答える