バックグラウンド
私のソリューションは2つのプロジェクトで構成されています。
- 標準のWindowsアプリケーション
- アプリケーションが直接使用せず、代わりにターゲットプロセスに挿入するDLL
基本的に、私のアプリケーションの観点から、DLLが満たさなければならない唯一の要件は、私のアプリケーションの作業ディレクトリに存在することです。つまり、DLLは、アプリケーションに関係のある関数をエクスポートしません。
質問
これら2つのバイナリを強力に結合したいと思います。アプリケーションを手動で呼び出す以外に、どのようなオプションがありLoadLibrary
ますか?
あいまいすぎる場合はお知らせください。
編集
誰も「答えていない」ように見えるので、私はEFraim
提案されたことをすることになりました(コメントを参照)。
DLLからダミー関数をエクスポートし、DLLで生成さ*.lib
れたファイルを、アプリケーションのリンカープロパティシートに追加の依存関係として追加しました。これで、実行時にDLLが見つからない場合、Windowsは適切なエラーメッセージを表示して実行を終了します。追加のボーナスとして、IATの初期化が成功すると、DLLイメージもロックされます。これにより、ユーザーの削除などが防止されます。