перехватить LoadLibrary( ) например Код (Text): HMODULE MyLoadLibraryA( LPCTSTR szModuleName ) { if( !lstrcmpiA( szModuleName, "mydll.dll" ) ) return LoadLibraryA( "anotherdll.dll" ); return LoadLibraryA( szModuleName ); }
есть программа (ее изменять нежелательно), загружающая prog_lib.dll, переименовываю prog_lib.dll в prog_lib_orig.dll заменяю файл prog_lib.dll на my_lib.dll (с именем prog_lib конечно) в my_lib.dll прописана загрузка prog_lib_orig.dll. Основная программа делает LoadLibraryA( "prog_lib.dll" ) - вот здесь ей необходимо вернуть хэндл оригинальной библиотеки. Перехват LoadLibrary не подходит, т.к. LoadLibrary уже находится в процессе выполнения
ASV Либо как сказал Great, либо пропиши свою либу в импорт оригинальной prog_lib - тогда получишь управление ещё до выполнения DllMain в prog_lib и ничего перехватывать будет не надо.
Значит перехват. Либо извратный вариант - убрать кодсвоей либы куда- нибудь, а на освободившееся место загрузить нужную либу