forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   вшить DLL in EXE (http://forum.boolean.name/showthread.php?t=16265)

Okay 01.02.2012 20:49

вшить DLL in EXE
 
Не могу вспомнить как вшивать DLL in EXE. Помню программу OllyDBG

impersonalis 01.02.2012 21:01

Ответ: вшить DLL in EXE
 
Никак. DLL по определению является динамически компонуемым модулем (загружаться он, тем не менее, может и статически [decls-файл] и динамически [CallDLL, обратите внимание на соглашения вызова]). Далее для Си\Си++: Для компоновки воедино объектных модулей вашего кода и сторонней библиотеки, последняя должна быть представлена файлом "объектной библиотеки" (obj-файл). Объектная библиотека отличается от библиотеки импорта (тоже obj-файла), используемой при статической загрузке DLL, наличием кода тел, экспортируемых функций.

IGR 02.02.2012 02:09

Ответ: вшить DLL in EXE
 
незнал незнал и забыл !!

Mr_F_ 02.02.2012 02:19

Ответ: вшить DLL in EXE
 
как-нибудь в виде ресурса дллку может вклеить (типа как ярлычки там всякие внутри хранят), потом её экстрактить оттуда в отдельный файл, а потом подключать, разве что. но это бессмысленный изврат.

L.D.M.T. 02.02.2012 15:42

Ответ: вшить DLL in EXE
 
molebox тебе в помощь!

HolyDel 02.02.2012 16:06

Ответ: вшить DLL in EXE
 
а вот это кстати странно, что нельзя какой либо модуль мапить прямо из памяти в память. вообще хорошие библиотеки умеют линковаться статически :)

Платон Александрович 02.02.2012 18:10

Ответ: вшить DLL in EXE
 
Цитата:

Сообщение от HolyDel (Сообщение 218465)
а вот это кстати странно, что нельзя какой либо модуль мапить прямо из памяти в память.

DLL можно загрузить из памяти, так-же как это делает системный загрузчик. Т.е. разобрать PE заголовок, выделить память под образ, скопировать секции, скорректировать смещения если нужно, обработать таблицу импорта, выставить необходимые аттрибуты памяти у секций и т.д.
Но из блица это сделать невозможно из-за отсутствия работы с указателями. А писать для этого библиотеку как-то странно, библиотеку для загрузки библиотек :)

Хотя автору наверное все-таки надо упаковка ехешника (и соответственно используемых библиотек), поэтому +1 к molebox, а еще можно заюзать упаковщик Максима, правда я не помню умеет-ли его упаковщик длл грузить.


Часовой пояс GMT +4, время: 13:47.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot