Как вернуть значение функции LoadLibrary

Тема в разделе "WASM.BEGINNERS", создана пользователем ASV, 19 апр 2007.

  1. ASV

    ASV New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2006
    Сообщения:
    3
    необходимо по LoadLibrary('MyLib.dll") вернуть хэндл другой библиотеки
     
  2. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    ?? кому вернуть и кто должен этот хендл найти?
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    перехватить LoadLibrary( )
    например

    Код (Text):
    1. HMODULE MyLoadLibraryA( LPCTSTR szModuleName )
    2. {
    3.   if( !lstrcmpiA( szModuleName, "mydll.dll" ) )
    4.     return LoadLibraryA( "anotherdll.dll" );
    5.  
    6.   return LoadLibraryA( szModuleName );
    7. }
     
  4. ASV

    ASV New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2006
    Сообщения:
    3
    есть программа (ее изменять нежелательно), загружающая 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 уже находится в процессе выполнения
     
  5. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    ASV
    Либо как сказал Great, либо пропиши свою либу в импорт оригинальной prog_lib - тогда получишь управление ещё до выполнения DllMain в prog_lib и ничего перехватывать будет не надо.
     
  6. ASV

    ASV New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2006
    Сообщения:
    3
    править оригинальные программы и библиотеки нежелательно
     
  7. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Значит перехват.
    Либо извратный вариант - убрать кодсвоей либы куда- нибудь, а на освободившееся место загрузить нужную либу :)