Сейчас на форуме: Rio (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Как спрятать A.dll в самописной B.dll, и использовать функции A.dll не сохраняя её в файл? |
Посл.ответ | Сообщение |
|
Создано: 15 июня 2008 12:13 · Личное сообщение · #1 Есть A.dll. Прототипы функций известны, обычная dll. Делаю B.dll в VC++, в ней A.dll храню как unsigned char A_DLL[A_DLL_SIZE] = { ... }; Как мне использовать функции A.DLL? Сохранять A.DLL на диск нельзя (тогда LoadLibrary/GetProcAddress решило бы проблемы). Я так понимаю, надо сэмулировать действия загрузчика DLL. В этом процессе у меня не много знаний. Подскажите, что делать? Второй вопрос: если A.DLL экспортирует классы, то вызывать функции классов (а-ля __thiscall) можно будет только написав какие-то переходники на ассемблере? ![]() |
|
Создано: 15 июня 2008 15:54 · Личное сообщение · #2 Ну если без диска, то проще всего реально эмулировать загрузчик. Благо, это длл, релоки есть. Надо будет выделить ей область памяти, записать туда либу и настроить ей импорт и релоки. Почитай формат этих директорий, зачем нужны и как устроены, или поищи готовый код, почти наверняка есть. После этого она будет загружена в адресное пространство как обычная длл, можно вызывать её функции и тд. ![]() |
|
Создано: 15 июня 2008 18:00 · Личное сообщение · #3 |
|
Создано: 15 июня 2008 19:53 · Личное сообщение · #4 |
|
Создано: 15 июня 2008 20:52 · Личное сообщение · #5 |
|
Создано: 15 июня 2008 23:03 · Личное сообщение · #6 |
|
Создано: 16 июня 2008 22:34 · Поправил: coderess · Личное сообщение · #7 |
|
Создано: 17 июня 2008 10:28 · Личное сообщение · #8 |
![]() |
eXeL@B —› Вопросы новичков —› Как спрятать A.dll в самописной B.dll, и использовать функции A.dll не сохраняя её в файл? |