なぜ EXE を DLL に変換するのですか?
EXE と .dll はどちらも Windows の PE コンテナ形式を使用していますが、目的が異なります。EXE はスタンドアロンのエントリポイントを持ち、独自のプロセスとして実行されます。一方、DLL は他のプログラムが実行時に呼び出す名前付きのエクスポート関数を公開します。一方を他方に変換するには、エクスポートの宣言、エントリモデルの再構築、およびソースからの再コンパイルが必要であり、これらは完成したバイナリに対して実行できる操作ではありません。
EXE から DLL への変換方法
Visual Studio (ソースコードが必要) APP
Visual Studio でプロジェクトの種類を DLL に変更し、エクスポート関数を追加して再ビルドします。これが EXE プロジェクトから動作する .dll を作成するための正しい方法です。
GCC / MinGW (ソースコードが必要) FREE
Linux または Windows 上の MinGW で、ソースにエクスポート関数の宣言を追加し、共有ライブラリフラグを指定して再ビルドすることで .dll を生成します。
EXE を変換するプログラム
これらの形式について
EXEファイルはWindowsの実行プログラムです。Windowsでは、ダブルクリックして実行します。MacやLinuxでは、CrossOverやWineを使用してください。EXEはWindows以外ではネイティブに動作しません。EXEはWindowsにおけるマルウェア配布の最も一般的な形式であるため、信頼できるソースからのファイルのみを実行してください。
.EXE の詳細を開く →DLL(Dynamic Link Library)は、プログラムの実行中にロードされるコンパイル済みコードを保持する Windows のライブラリファイルです。ダブルクリックして開くものではありません。アプリが DLL の欠落を報告した場合は、ランダムなサイトからファイルをダウンロードするのではなく、そのアプリを再インストールするか、Microsoft Visual C++…
.DLL の詳細を開く →品質と注意点
- EXE を DLL に変換すると主張するサイトは、ファイル名を変更しているだけか、誤解を招く表現をしています。その結果は動作する共有ライブラリではありません。
- EXE と DLL はどちらも PE バイナリコンテナを共有しているため、このような疑問が生じますが、エントリモデルとエクスポート関数の要件は根本的に異なります。
- ソースコードがない場合の現実的な代替案は、ライブラリとして呼び出そうとするのではなく、EXE を子プロセスとして起動し、パイプやソケットを介して通信することです。