Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.09.2006, 10:12
RUS_Hacker RUS_Hacker вне форума
Новичок
 
Регистрация: 23.07.2006
Сообщения: 54
Репутация: 10
Восклицание Ресурсы внутри Dll

Как можно запихнуть какой-нибудь файл в Dll, а потом считать его оттуда ? Кто знает, скажите пожалуйста!!!
Ответить с цитированием
  #2  
Старый 03.09.2006, 17:23
Аватар для Ross
Ross Ross вне форума
Активный
 
Регистрация: 15.10.2005
Адрес: Казань
Сообщения: 250
Репутация: 30
Подмигивание

А что тебе надо поместить в DLL-ку (рисунок, звук, видео)?
Для этого надо создавать пустую DLL-ку, помещать имена res-файлов, а потом компилировать DLL-ку. Для формирования файлов RES нужно пользоваться прогой brcc32, которая лежит в каталоге Delphi (в bin вроде).
Ответить с цитированием
  #3  
Старый 03.09.2006, 17:23
Аватар для Ross
Ross Ross вне форума
Активный
 
Регистрация: 15.10.2005
Адрес: Казань
Сообщения: 250
Репутация: 30
По умолчанию

Могу прислать некоторые примеры.
Ответить с цитированием
  #4  
Старый 03.09.2006, 19:28
RUS_Hacker RUS_Hacker вне форума
Новичок
 
Регистрация: 23.07.2006
Сообщения: 54
Репутация: 10
По умолчанию

Давай, желательно с подробным комментарием
Ответить с цитированием
  #5  
Старый 03.09.2006, 22:32
Аватар для Ross
Ross Ross вне форума
Активный
 
Регистрация: 15.10.2005
Адрес: Казань
Сообщения: 250
Репутация: 30
По умолчанию

Мыль-це то своё дай.
Ответить с цитированием
  #6  
Старый 03.09.2006, 22:49
RUS_Hacker RUS_Hacker вне форума
Новичок
 
Регистрация: 23.07.2006
Сообщения: 54
Репутация: 10
По умолчанию

Ах да, забыл вот :
akimov_cta@bk.ru
Ответить с цитированием
  #7  
Старый 03.09.2006, 23:06
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

можно и мне пожалуста
electronic_arts@programist.ru
Ответить с цитированием
  #8  
Старый 04.09.2006, 19:48
Аватар для Ross
Ross Ross вне форума
Активный
 
Регистрация: 15.10.2005
Адрес: Казань
Сообщения: 250
Репутация: 30
По умолчанию

Всё, вроде всем желающим скинул. Сначало читайте readme файл.
Ответить с цитированием
  #9  
Старый 04.09.2006, 21:19
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
По умолчанию

Всё ОК
спосибо огромное
Ответить с цитированием
  #10  
Старый 05.09.2006, 00:54
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Ross, скинь еще на decoding@narod.ru пожалуйста.
Ответить с цитированием
  #11  
Старый 15.11.2007, 04:33
Аватар для Volkogriz
Volkogriz Volkogriz вне форума
Прохожий
 
Регистрация: 02.11.2007
Сообщения: 5
Репутация: 10
По умолчанию

Доброе время суток!

Последний раз редактировалось Volkogriz, 15.11.2007 в 05:10.
Ответить с цитированием
  #12  
Старый 15.11.2007, 05:05
Аватар для Volkogriz
Volkogriz Volkogriz вне форума
Прохожий
 
Регистрация: 02.11.2007
Сообщения: 5
Репутация: 10
Восклицание

Доброе время суток!
Помогите разобраться!!!!
Мне нужно создать DLL-ку с ресурсами и по заказу главного приложение извлекать из неё оприделённый ресурс!
На пример:
Открываем главное приложение жмём на кнопку рисунок_1 и из DLL-ки извлекается в указоную папку например 1\2\3\рисунок_1.bmp и всё приложение само им вертит как хочет на пример ставит на фон рабочего стола и т.д!
Так же с музикой и с другими файломи какие я внису в .RES файл!
Или подобное приложение как написать чтоб оно работало по таму-же принципу нужно чтобы всё происходило в тихую в фоновам режиме!
Нужно именно модуль к главному приложению иначе моё приложение будит весить 2.5 гига!
Раньше я делал так может кого и заинтерисует:
Отрывок с форума programmersforum тим и исходник я кидал !
Цитата:
Если надо засунуть exe или другой какой либо файл из приложения !
надо вставить его в ресурс и
откомпилить компилятором ресурсов. Далее читать из ресурса своего EXE-файла.
Как это зделать:
Пример:
Создать с помощью блокнота Файл обозвать его Program.rc
Пишем в него Program exe C:\Program.exe и сохраняем его!
Далие открываем "C:\Program Files\Borland\Delphi\bin"
и находим там файл brcc32.exe капируем в папку с Program.rc!
Создаём Program.bat открываем с помощю текст редактора пишем :
brcc32.exe Program.rc И сахраняем!
Program.exe должна нахадитс в ириктории C:\Program.exe для избежании ошибки в пути!
Запускаем Program.bat получаем Program.RES !!!!
Далие В проэкте пишем:

PHP код:
unit Unit1;
//*Прозьба на орфографию внимание необрощать!!!
//*Если что не понятно спросить!!!

interface

uses
Windows
MessagesSysUtilsClassesGraphicsControlsFormsDialogs,
StdCtrlsExtCtrls,ShellAPI;

type
TForm1 
= class(TForm)
Panel1TPanel;
Button1TButton;
Button2TButton;
Button3TButton;
Button4TButton;
procedure Button4Click(SenderTObject);
procedure Button1Click(SenderTObject);
procedure FormCreate(SenderTObject);
procedure FormClose(SenderTObject; var ActionTCloseAction);
procedure Button2Click(SenderTObject);
procedure Button3Click(SenderTObject);
private
{ Private 
declarations }
public
{ Public 
declarations }
end;

var
Form1TForm1;

implementation

{$R *.DFM}
{
$R Chess.RES}//Это и есть наш Chess.exe

//Процедура извлечения
procedure ExtractRes(ResTypeResNameResNewName String);
var
Res TResourceStream;
begin
Res 
:= TResourceStream.Create(HinstanceResnamePchar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;
//Пример простого запуска программы! И ожидание завершения процеса!
procedure TForm1.Button4Click(SenderTObject);
var
si Tstartupinfo;
Tprocessinformation;
//Запускаем
begin
FillChar
SiSizeOfSi ) , );
with Si do begin
cb 
:= SizeOfSi);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
//Ждём
Application.Minimize;
Createprocess(nil,'Chess/Chess.exe',nil,nil,false,Create_default_error_mode ,nil,nil,si,p);
Waitforsingleobject(p.hProcess,infinite);
Application.Restore;
end;

//Пример запуска программы из ресурсов! И ожидание завершения процеса!
procedure TForm1.Button1Click(SenderTObject);
var
si Tstartupinfo;
Tprocessinformation;
//звлекаем
begin
ExtractRes
('exe''Chess''We Extract/Chess.exe');
//Запускаем
begin
FillChar
SiSizeOfSi ) , );
with Si do begin
cb 
:= SizeOfSi);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
Application.Minimize;
Createprocess(nil,'We Extract/Chess.exe',nil,nil,false,Create_default_error_mode ,nil,nil,si,p);
Waitforsingleobject(p.hProcess,infinite);
Application.Restore;
end;
end;


procedure TForm1.FormCreate(SenderTObject);
begin
CreateDir
('We Extract\'); //Соэдаём директорию при открытии фармы
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DeleteFile('
We Extract/Chess.exe'); //Удаляем файл при закрытии формы
begin
RemoveDir('
We Extract\'); //Удаляем директорию при закрытии формы
end;
end;
//Запуск из камандной строки!
procedure TForm1.Button2Click(Sender: TObject);
begin //Запуск из командной сроки с ключами /C/S/D={tmp}
ShellExecute(Handle, nil, '
Chess/Chess.exe', '/c'+' //D={tmp', nil, SW_SHOW);
end;
//Закрываем
procedure TForm1.Button3Click(Sender: TObject);
begin
Close
end;

end. 

Исходник целиком!
За рание блогодарю!!!
С уважением Volkogriz!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:40.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter