Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Спрятать DLL, Нужно спрятать dll в проект 
V
    Опции темы
TSlava
Дата 5.4.2011, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 14.12.2010

Репутация: нет
Всего: нет



День добрый!

У меня есть сторонняя a.dll
Интерфейс a.dll известен.
Есть проект. После сборки - b.exe файл.
Нужно спрятать a.dll в проект. Думаю использовать потом a.dll как внутренний ресурс.

В итоге после компиляции и сборки проекта хотелось бы чтобы a.dll была внутри b.exe.

Подскажите куда копать?

Спасибо. 

PM MAIL   Вверх
Frees
Дата 5.4.2011, 10:04 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



Цитата(TSlava @  5.4.2011,  12:44 Найти цитируемый пост)
В итоге после компиляции и сборки проекта хотелось бы чтобы a.dll была внутри b.exe.

Для этого нужны исходники dll, иначе никак.

Добавлено через 34 секунды
хочешь выдать чужую dll за свою программу?


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
TSlava
Дата 5.4.2011, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 14.12.2010

Репутация: нет
Всего: нет



Цитата

Для этого нужны исходники dll, иначе никак.


Сырцы dll на сях ((

Цитата

хочешь выдать чужую dll за свою программу?


Ну что Вы в самом деле.))
Написал "сторонняя" - чтобы контекст вопроса был более понятен.
И Dll и Проект - единый механизм. Просто не хочу чтоб dll рядом лежала.

Это сообщение отредактировал(а) TSlava - 5.4.2011, 10:33
PM MAIL   Вверх
Frees
Дата 5.4.2011, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



Цитата(TSlava @  5.4.2011,  13:28 Найти цитируемый пост)
Просто не хочу чтоб dll рядом лежала.

а что так, вполне нормальная ситуация?

Цитата(TSlava @  5.4.2011,  13:28 Найти цитируемый пост)
Сырцы dll на сях ((

для этого и придумали длл объединять функционал написанный на разных языках.

Добавлено через 39 секунд
Цитата(TSlava @  5.4.2011,  13:28 Найти цитируемый пост)
Просто не хочу чтоб dll рядом лежала.

можно и не рядом ее держать а в System32 например скопировать


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
TSlava
Дата 5.4.2011, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 14.12.2010

Репутация: нет
Всего: нет



Не могу сказать что текущая реализация(два файла exe + dll) меня сильно напрягает.
Согласен с тем, что это более чем нормально!

Объединение exe и dll в один файл - не более чем просто удобство.

Спасибо за ответ!




PM MAIL   Вверх
cat512
Дата 5.4.2011, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: 7
Всего: 15



Цитата

Сырцы dll на сях ((

Так это здорово, что они вообще есть.  Как вариант, можешь скомпилить сорцы с++ компилером в obj-файлы и потом статически прилинковать к основному делфи приложению.
Второй вариант - хакерский. Когда то был описан на RSDN, имеет некоторые недостатки (как не корректность использования некоторых функций win api loader)и неудобства, но вполне работает.
Смысл его в том, что бы создать в памяти процесса секцию и распаковать туда dll, которая лежит в секции ресурса основного приложения.
PM MAIL   Вверх
A11MaNi
Дата 5.4.2011, 19:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 5.4.2008
Где: россия, юфо

Репутация: нет
Всего: 1



Как вариант - можно хранить dll внутри exe - файла в виде ресурсов, и извлекать
 (что то вроде )
Код

function ExtractRes(ResType,ResName,ResNewName:String):Boolean;
var
 Res:TResourceStream;
 begin
  Res:=TResourceStream.Create(Hinstance,Resname,Pchar(ResType));
  Res.SaveToFile(ResNewName);
  Res.Free;
 end;

 куда/когда нужно. Ну а потом уже удалять, после использования.

Это сообщение отредактировал(а) A11MaNi - 5.4.2011, 19:10
PM MAIL ICQ   Вверх
TSlava
Дата 6.4.2011, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 14.12.2010

Репутация: нет
Всего: нет



Спасибо за ответы!

Попытаюсь проработать вариант с ExtractRes.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0901 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.