次のコードを使用して、win32 実行可能ファイルに DLL をロードしています。
int _tmain(int argc, _TCHAR* argv[])
{
DWORD somevar = 0;
HINSTANCE hDLL;
hDLL = LoadLibrary( argv[1] );
if ( !hDLL ){
MessageBox(NULL, _T("Unable to load dll."), _T("Fatal Error"), MB_ICONERROR);
return -1;
}
}
DLL がロードされると、DLL はその親実行可能ファイルの変数、たとえば上記の DWORD 変数にアクセスできますsomevar
か?
シナリオは、DLL をロードする実際の実行可能ファイルが既にコンパイルされており、運用環境で使用されているため、親の実行可能ファイルにコードを追加できないというものです。参考までにソースコードだけ載せておきます。