Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2007, 17:59   #1
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
Восклицание вызов процедуры из exe?

Доброе время суток!!!
Уменя вопрос !?
Создаём exe делаем файл ресурсов например помещаем туда 20 курсоров компилируем этот exe, назавём его ресурс.exe
ДАЛЕЕ создоём какую-лобо программу назавём её программ.exe .
Вопрос как при нажатии в программ.exe на кнопку курсор1 извлечь из ресурс.exe не все ресурсы а только 1 ресурс соответствующий названию например курсор1 ну т.д и т.п!
Проще объяснить не получаетя мыслю впаймать не магу!
ЗАРАНИЕ благадарю !
С уважением Volkogriz!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 15.11.2007, 10:31   #2
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Ну так в чем проблема?

Код:
var Module, Cursor: THandle;
begin
  Module := LoadLibrary('proga.exe');
  Cursor := LoadCursor(Module,'cursor1')
end;
Анимированные курсоры грузятся через LoadImage

* Может быть "правильнее" будет использовать LoadLibraryEx с флагом LOAD_LIBRARY_AS_IMAGE_RESOURCE
пыщь
JTG вне форума Ответить с цитированием
Старый 15.11.2007, 15:26   #3
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

JTG благадарю!!!
Мне нужно создать DLL-ку или exe-ку работающию в тихую в фоновам режими с ресурсами и по заказу главного приложение извлекать из неё оприделённый ресурс {именно извлекать} иногда загружать из самой библиотеки!
JTG ваш код только загружает ресурсы в приложение!?
На пример:
Открываем главное приложение жмём на кнопку рисунок_1 и из DLL-ки или exe-ки извлекается в указоную папку например 1\2\3\рисунок_1.bmp и всё приложение само им вертит как хочет на пример ставит на фон рабочего стола и т.п!
Так же с музикой и с другими файломи какие я внису в .RES файл!
Нужно именно модуль к главному приложению иначе моё приложение будит весить 2.5 гига!
Не количеством плюсов измеряется репутация человека...!

Последний раз редактировалось Volkogriz; 15.11.2007 в 15:32.
Volkogriz вне форума Ответить с цитированием
Старый 15.11.2007, 16:59   #4
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Хранить 2.5 гб в ресурсах не самая хорошая идея...
Кстати есть в делфи класс TResourceStream

Код:
var Stream: TResourceStream;
     Module: THandle; 
Begin
  Module:=LoadLibrary('resource.dll');
  RS:=TResourceStream.Create(Module, 'ИМЯ РЕСУРСА', 'ТИП РЕСУРСА');
...
  <RS.read, write, SaveToFile... короче стандартные методы>
...
  RS.free;
  CloseHandle(Module);
end;
А вообще не вижу смысла делать исполняемый файл, готорый не будет исполнятся Можно скачать что-то типа ZipForge, там точно так же организована работа с потоками, ну и сжатие есть, работает быстро
пыщь

Последний раз редактировалось JTG; 15.11.2007 в 17:06.
JTG вне форума Ответить с цитированием
Старый 15.11.2007, 19:50   #5
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Ещё раз блогододазю JTG!!!
С уважением Volkogriz!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 16.11.2007, 02:19   #6
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
Радость

JTG подчерпнув из вашего кода главное, я его немного переделал!
Зделал так сказать себе поудобней Но вот проблемка!!!
Компелирует а дальше самое "интересное"
жмём на кнопку извлечь а он пишет 'resource BITMAP1 not found'
Пачимууу он его не обнаааруживает!!????
Чаво я ему ни так зделал где ашибкаааа!
Вроде всё правельно dll-ку он читает при активном приложении со злости хотел удолить dll-ку так оно приложения меня так послало!!!
Выручайте укажите на допущиные ошибки пожааалусто!!!
PHP код:
var
Form1TForm1;
ResModuleTHandle;
Res TResourceStream;
implementation

{$R *.dfm}
procedure ExtractRes(ResTypeResNameResNewName String);
begin
ResModule
:=LoadLibrary('Project2.dll');
Res := TResourceStream.Create(HinstanceResnamePchar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;

procedure TForm1.Button1Click(SenderTObject);
Begin
  ExtractRes
('BITMAP''BITMAP1''BI/BIT.bmp');
end;
end
За рание блогодарен!!!
С уважением Volkogriz!!!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 16.11.2007, 02:24   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Прочитал в поток. И убил поток.
И удивляется - как, мол, это так - ничего не могу прочитать из убитого, т.е. несуществующего потока...
mihali4 вне форума Ответить с цитированием
Старый 16.11.2007, 03:02   #8
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

mihali4 Спасибо!!!
С уважением Volkogriz!!!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 16.11.2007, 11:18   #9
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Хе-хе, да )
Вызывать деструкторы, закрывать хэндлы чаще всего надо при завершении работы приложения
--
Хм, хотя тут же SaveToFile вызывается когда поток ещё есть
Наверняка со строками косяк, pchar там может не надо, проверь

'BI/BIT.bmp' тут вроде слэш развернуть надо или вообще лучше заменить на ExtractFilePath(Application.Exename )+'BI\BIT.bmp'
пыщь

Последний раз редактировалось JTG; 16.11.2007 в 11:30.
JTG вне форума Ответить с цитированием
Старый 16.11.2007, 22:34   #10
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

шас попробую!!
Спасибо!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов процедуры igbizon Общие вопросы Delphi 5 02.09.2008 10:44
Вызов процедуры Kashp Общие вопросы Delphi 4 31.03.2008 16:22
Вызов процедуры Stanislav Общие вопросы Delphi 9 22.11.2007 19:01
Вызов процедуры Илья Кибель Помощь студентам 7 17.09.2007 19:43
Вызов процедуры Monoflextor Общие вопросы Delphi 2 28.04.2007 17:32