# プラグインと SDK - DE Decompiler

> FRX イメージビューアを使用して、復元されたフォームグラフィックスを検査・抽出するか、共有 SDK を通じてカスタムプラグインを開発します。

Canonical HTML: <https://www.de-decompiler.com/help/jp/plugins.htm>

## プラグインと SDK

FRX イメージビューアを使用して、復元されたフォームグラフィックスを検査・抽出するか、共有 SDK を通じてカスタムプラグインを開発します。

### FRX Image Viewer

FRX Image Viewer 1.2.0は、VB DecompilerまたはDE Decompilerが登録した画像を表示・抽出します。VB DecompilerはVB5/6と.NETのフォーム画像を、DE Decompilerは対応するDelphiおよびC++BuilderのVCLアプリケーションのバイナリDFM画像を提供します。BMP、PNG、JPEG、GIF、ICO、CURに対応しています。

#### インストールと起動

1. `FRXViewer.dll` をホストインストールの `plugins` サブディレクトリにコピーし、逆コンパイラを再起動します。DLL のアーキテクチャは解析対象ファイルのアーキテクチャに関係なく、ホストアプリケーションと一致している必要があります。

2. EXE または DLL を開き、フォームを解析してホストに画像を登録させます。

3. **プラグイン (Plugins)** > **FRX Image Viewer** を選択し、イメージを検査するサムネイルを選択します。

[1.2.0 ダウンロード](https://www.de-decompiler.com/files/frx_image_viewer_1_2.zip) には x86 ホスト用の DLL が含まれています。x64 ホストには一致するビルドを使用してください。このプラグインには Windows 10/11 が必要です。<a href="https://github.com/DotFixSoft/frxviewer" rel="nofollow noopener">ソースリポジトリ</a> にはビルド手順が含まれています。

#### プレビューとエクスポート

ギャラリーとプレビューには、複数の画像を含む ICO/CUR ファイルなどの利用可能な画像が表示されます。ステータス欄には項目、寸法、データサイズまたは元ビットマップのオフセット、形式が表示されます。ホストのテーマに追従し、ダークモードにも対応します。

選択した項目をエクスポートするには、**ファイルに保存**を選択します。スタンドアロンの画像は元のバイトとフォーマットを保持します。個々の ImageList セルは、マスクとアルファ透明度を含む ICO ファイルとしてエクスポートされ、これらの ICO ファイルはソースのビットマップシートから派生しています。

![DE Decompiler の FRX イメージビューアでは、Delphi DFM グラフィックスと個別の ImageList アイコンが表示されます。](https://www.de-decompiler.com/image/help/de_decompiler_images_viewer.png)
DE Decompiler の FRX イメージビューアでは、Delphi DFM グラフィックスと個別の ImageList アイコンが表示されます。

#### ネイティブ Delphi ImageList と互換性

対応するホストでは、認識されたネイティブVCLのImageListを個々のアイコンとして表示します。コレクション項目内の独立した画像は、通常の個別画像として扱います。未対応のストリームでは、元の画像エントリが利用できる場合、画像全体の表示・抽出を維持します。

VB Decompiler 26.6 および DE Decompiler 26.6 でサポートされる共有 SDK リビジョン 26.6 は、オプションの `GetFrxImageListInfo` (63) と `GetProductName` (64) を追加します。古いホストは元の画像 API と全体画像の動作を保持します。機能検出とオフセットルールについては、[SDK リファレンス](https://www.de-decompiler.com/plugins_sdk_jp.htm#native-images-26-6)を参照してください。

表示と抽出では、解析対象ファイルを実行せず、そのコンポーネントも読み込みません。アニメーション GIF は最初のフレームを表示します。利用可能なリソースは、ホストが正常に解析・登録した画像に依存します。

**プラグイン (Plugins)** メニューは、インストールされたネイティブ DLL プラグインのエントリポイントです。共有コールバックインターフェースは、カスタム拡張機能に対してサポートされているプロジェクト情報とコードを公開します。利用可能な DLL プラグインは起動時に初期化され、対象のホストアーキテクチャと Windows 環境向けにビルドする必要があります。

### プラグインの開発

SDK には Visual C++、Rust、Delphi、Free Pascal の例が含まれています。ワークフローで必要な操作を実装するには、エクスポートされたエントリポイントとホストコールバックを使用してください。

また、AI コーディングエージェントにプラグインの実装を依頼することもできます。[SDK および API リファレンス](https://www.de-decompiler.com/plugins_sdk_jp.htm)へのリンクと、必要な動作の説明を提供し、DE Decompiler と代表的な入力ファイルに対して結果の DLL をレビュー、ビルド、テストしてください。

### インターフェースの互換性

文書化された SDK 呼び出し規約、エクスポートされたエントリポイントおよびデータ表現を使用します。共有 API 識別子は既存の名前を維持し、`VBDecompilerPlugin` プレフィックスを含みます。エクスポートされたシンボル内の製品名を変更すると、ABI が変更されます。

インターフェースが共通でも、すべてのVB Decompiler用プラグインがDE Decompilerのデータに適しているとは限りません。想定するオブジェクト型、復元コードの言語、現在の項目で利用できる操作を確認してください。

### 開発者リファレンス

製品ウェブサイトの[プラグイン API リファレンス](https://www.de-decompiler.com/plugins_sdk_jp.htm)を参照してください。そこでは、エクスポートされたエントリポイント、コマンド識別子、コールバックデータおよびバッファ要件が説明されています。SDK はアクティブビューとプロジェクトレベルのコードアクセスを提供します。すべての逆コンパイル済みプロシージャを検索する操作には、対応する逆コンパイル結果（コードリスト）の利用が必要です。コード照会コールバックは、一致する入力ファイルが利用可能な場合に個々のプロシージャを処理できます。

### 表示中の項目、関数マーク、アドレス

GetDisplayedTreeItem（65）で表示中のフォーム、ユニット、クラス、プロシージャを取得できます。GetModuleFunctionMark（66）とSetModuleFunctionMark（67）で関数のマークを取得・変更し、FindModuleFunctionByVA（68）で仮想アドレスから関数を検索できます。GetModuleFunctionVA（69）は64ビットを含む完全な仮想アドレスを返します。既存のコールバックシグネチャとコマンド番号は維持しています。
