[Win32] 別ファイルのコードを同プロセスで実行する

Posted by
ぴろり
Posted at
2005/10/28 16:52
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
開発メモ カテゴリ
 種を明かせば単なる DLL だったワケですが。ランチャープログラム(launcher.exe)が、別ファイルにある実行コードを launcher.exe と同じプロセスで実行するためのサンプルです。
この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  

要求事項はこんな感じでした。
  1. タスクマネージャから prog1 が見えない
  2. 開発版は prog1 単体で実行・デバッグができる
  3. リリース版は prog1 単体で実行できない
  4. ソースコードはこの機構を全く意識しない
 CreateProcess や ShellExec で prog1 を実行すると、prog1 がタスクマネージャから別プロセスとして見えてしまいます (これらの API には使ったことのない引数が多いので、実のところ適当な引数で一発解決かもしれません)  そこで LoadLibrary と GetProcAddress を使う案。実はエッセンス部分はこれだけでした。 後は要求事項の2.〜4.をスマートに満たすだけで、わざわざエントリに起こすまでも無かったような (´・ω・`)つ[ダウンロード]

 prog1 が起動される過程を簡単に示すと次の通りです。 ネットゲームによく見られるようなパッチダウンローダとプログラム本体のような構成に使えるかもしれません。 メリット…? …さぁ?

リリース版:
Windows → launcher.exe → LoadLibrary + GetProcAddress → prog1::ExportedMain → prog1::WinMain
開発版:
Windows → prog1::WinMain
この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  



関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。