Показать сообщение отдельно
  #5  
Старый 02.06.2015, 13:31
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

В LoadLibrary передается путь к библиотеке. Она возвращает описатель загруженной библиотеки (насколько я помню, это обычный указатель на ее начало в памяти). Потом через GetProcAddress с использованием этого указателя нужно найти все требуемые функции из DLL и сохранить в переменных типа "функция". Затем вызывать. Это неудобно, но работает.
Грузить прямо из памяти - это извращение, потому что это делается вручную. Код, который я видел - это фактически люди сами писали свой LoadLibrary и GetProcAddress. Сами анализируют таблицы импорта и экспорта библиотеки, применяют релокации и т.д.
Самый лучший выход - не заниматься всей этой фигнёй. Просто положить библиотеку рядом и всё. Если передаешь программу кому-то - собери в ZIP или в установщик и передавай его.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием