1

バックグラウンド

私のソリューションは2つのプロジェクトで構成されています。

  1. 標準のWindowsアプリケーション
  2. アプリケーションが直接使用せず、代わりにターゲットプロセスに挿入するDLL

基本的に、私のアプリケーションの観点から、DLLが満たさなければならない唯一の要件は、私のアプリケーションの作業ディレクトリに存在することです。つまり、DLLは、アプリケーションに関係のある関数をエクスポートしません。


質問

これら2つのバイナリを強力に結合したいと思います。アプリケーションを手動で呼び出す以外に、どのようなオプションがありLoadLibraryますか?

あいまいすぎる場合はお知らせください。


編集

誰も「答えていない」ように見えるので、私はEFraim提案されたことをすることになりました(コメントを参照)。

DLLからダミー関数をエクスポートし、DLLで生成さ*.libれたファイルを、アプリケーションのリンカープロパティシートに追加の依存関係として追加しました。これで、実行時にDLLが見つからない場合、Windowsは適切なエラーメッセージを表示して実行を終了します。追加のボーナスとして、IATの初期化が成功すると、DLLイメージもロックされます。これにより、ユーザーの削除などが防止されます。

4

1 に答える 1

1

dll と exe を別々にリリースする予定がない場合は、リソースに dll を追加し、起動時にそこから解凍することができます。

于 2009-08-01T04:06:28.000 に答える