2012-01-27 14 views
1

ネイティブ(C++)DLLを実行可能ファイルとして読み込むことはできますか? ハードドライブやそれに類するものにEXEを作成せずにメモリから直接スルーしますか?DLLをexeとして起動する

+0

なぜあなたはこれをしたいですか – rerun

+0

ここで何を達成しようとしていますか? – ChrisF

+0

私はC++で独自のデバッグしかできないデバッガを作成しています。 x64はx64とx86 - x86のみをデバッグできます。 2つの別々のexeを用意するのではなく、各プラットフォームごとに1つずつ、デバッグ対象にどのバージョンが必要であるかをチェックしてから、そのexeを "作成"することを考えていました。 – Idov

答えて

2

ルックアップrundll32.exe。しかし、あなたがしていることを正確に知っている方がよいでしょう。正直、わかりません。

0

LoadLibrary WinAPI呼び出しを使用してDLLを読み込むことができます。

3

具体的にはどういう意味ですか?たとえば、DLLでどのエントリポイントを使用しますか?

これが実際に動作する唯一の方法は、DLLが特に許可されている場合です。その場合、なぜ最初にDLLの代わりに実行可能ファイルを作成するだけではないのか正確には分かりません。

ケーススタディはRunDLL32.exeスタブです。 DLL with a specific signatureの関数をエントリポイントとして実行するように設計されています。 DLLがこの署名に準拠するように特別に設計されていない場合は、things don't go wellにこのような機能が必要な場合は、RunDLL32.exeに必要な関数の署名を照合し、DLLを使用してDLLを実行することを検討してください。

+0

私はこのDLLを書いているので、許可するように書かれています。私はx64とx86プラットフォームの両方を扱う必要がありますが、私は2つのバージョンを提供したくありません(私の質問にコメントで説明しています): – Idov

+0

@Idov:標準パターンは2つのバージョンを提供することです。デバッガの場合は、開発者向けに書かれています。私は、x86プラットフォームとx64プラットフォームの違いを理解し、2つの異なる実行可能ファイルをうまく混乱させることができると思います。この方法を必要以上に複雑にしています。 –

4

マイクロソフトでは、Rundll32.exeを提供しています。この機能を使用して、この使用法をサポートするように明示的にコード化されたDLL機能を実行できます。

関連する問題