Загрузить Dll без выполнения функции dllmain

Я хочу загрузить специальную dll без выполнения функции dllmain.

Я думаю, установка точки останова на dllmain может решить эту проблему.

Но я не знаю, как мне быть?

Также я хочу вызвать функцию экспорта dll.

Я пытался использовать LoadLibraryEx с dont_resolve_dll_references, но возникает ошибка при вызове функции dll.

Как я могу это решить? Пожалуйста, дайте мне вашу идею.

Спасибо.


person bTagTiger    schedule 18.05.2013    source источник


Ответы (2)


Как объясняется в этом вопросе: Win32 API для перечисления функций экспорта dll?

Вы можете использовать LoadLibraryEx с флагом DONT_RESOLVE_DLL_REFERENCES, хотя использование этого флага настоятельно не рекомендуется. Если это так, вам, вероятно, придется освободить и перезагрузить dll, если вы действительно хотите ее использовать.

person Liam de Koster-Kjaer    schedule 16.09.2015

Как и объяснено здесь:

Дополнительная точка входа в библиотеку динамической компоновки (DLL). Когда система запускает или завершает процесс или поток, она вызывает функцию точки входа для каждой загруженной библиотеки DLL, используя первый поток процесса. Система также вызывает функцию точки входа для библиотеки DLL, когда она загружается или выгружается с помощью функций LoadLibrary и FreeLibrary.

вызов DllMain является обязательной функцией ОС (хотя реализация этой функции не является обязательной), если вы используете стандартный способ загрузки и выполнения динамической библиотеки. Так что нет официального способа сделать это.

person Felice Pollano    schedule 18.05.2013
comment
Что ж, сейчас я пытаюсь отлаживать одну программу, в которой есть Guard dll. Итак, я хочу передать функцию dllmain охранника стандартным или нестандартным способом. - person bTagTiger; 18.05.2013