Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 10.07.2009, 14:19   #1
TyoshA
Пользователь
 
Регистрация: 04.02.2008
Сообщений: 19
По умолчанию создание dll при старте приложения и удаление при завершении

РЕбят появилась трабла!В инете выдаёт только ФаКи по созданию dll файлов через Делфи но мне нужно чтобы dll хранилось в exe файле и при старте выгружался в ту же папку с моим кодом внутри а при завершении удалялось!Как это можно сделоть кроме "Склеивания"файлов?Можно в теле моего приложения описать DLL и выгружать его кагда нада?
TyoshA вне форума Ответить с цитированием
Старый 10.07.2009, 15:06   #2
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

Ага , поиск по форуму "Файл ресурсов"
Много примеров Хотя я редко пользуюсь
Lime вне форума Ответить с цитированием
Старый 10.07.2009, 15:28   #3
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Существует два вида связывания DLL с exe'шником: статистическое (загрузка DLL при запуске программы) и динамическое (загрузка DLL по надобности при работе программы). На то она и DLL, что бы не в exe файле код хранился, а отдельно.
profi вне форума Ответить с цитированием
Старый 10.07.2009, 15:59   #4
TyoshA
Пользователь
 
Регистрация: 04.02.2008
Сообщений: 19
По умолчанию

знаю...Прогу написал но неудобно эту просгу использывать изза того что нужно 2 файла копировать.....Это достаточно щипитильный клас программ...Мне нужно чтоб dll была вшита в exe и чтоб моя прога использывала эту dll'ку как будто она лежит рядом(или же вылаживать её на время работы проги)....
TyoshA вне форума Ответить с цитированием
Старый 10.07.2009, 20:43   #5
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

Цитата:
Сообщение от TyoshA Посмотреть сообщение
знаю...Прогу написал но неудобно эту просгу использывать изза того что нужно 2 файла копировать.....Это достаточно щипитильный клас программ...Мне нужно чтоб dll была вшита в exe и чтоб моя прога использывала эту dll'ку как будто она лежит рядом(или же вылаживать её на время работы проги)....
Читай мой пост выше.
dll переделывается в файл ресурсов , и при компиляции "встраивается, вшивается,итп" в твой exe файл .. далее можно работать с ней напрямую или же вытянуть и положить рядом в папку.

А как всё это сделать , ещё раз напишу , прочитай мой пост выше.

Забыл упомянуть , антивирусы особенно подозрительно смотрят на файлы с такой структурой , а если вместо dll будет exe ... прямо как маслом намазанно)

Последний раз редактировалось Lime; 10.07.2009 в 21:35.
Lime вне форума Ответить с цитированием
Старый 10.07.2009, 21:30   #6
TyoshA
Пользователь
 
Регистрация: 04.02.2008
Сообщений: 19
По умолчанию

Спасибо разбираюсь=)
TyoshA вне форума Ответить с цитированием
Старый 13.07.2009, 10:00   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
чтобы dll хранилось в exe файле
А зачем такие муки??
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.07.2009, 12:56   #8
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

1. Пишем в блокноте RC-файл, куда прописываем все нужные нам программы, например:
ARJ EXEFILE C:\UTIL\ARJ.EXE
2. Компилируем его в ресурс при помощи Brcc32.exe. Получаем RES-файл.
3. Далее в тексте нашей программы:

Код:
implementation
{$R *.DFM}
{$R test.res} //Это наш RES-файл
procedure ExtractRes(ResType, ResName, ResNewName : String);
var
  Res : TResourceStream;
begin
  Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
  Res.SavetoFile(ResNewName);
  Res.Free;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 // Записывает в текущую папку arj.exe
 ExtractRes('EXEFILE', 'ARJ', 'ARJ.EXE');
end;
Взято с: www.DelphiXFiles.narod.ru
W0LF вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос при закрытии приложения? Inara Общие вопросы Delphi 2 26.03.2009 20:00
Ошибка при выполнении приложения ADJAVA Общие вопросы по Java, Java SE, Kotlin 0 24.07.2008 10:07
приложение без формы, событие при завершении ERASERROR Общие вопросы Delphi 10 22.02.2008 14:10
Сбой загрузки компонет при старте Delphi 2007 dimfil Компоненты Delphi 2 22.11.2007 12:55
заставка при старте програми VVk Общие вопросы Delphi 3 02.11.2007 11:37


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS