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

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

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

Восстановить пароль

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

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

Доброе Время суток.
Помагите пожалуйсто!
Есть длл с ресурсом, я раньше добовлял этот код:
Код:
procedure ExtractRes(ResType, ResName, ResNewName : String) stdcall;
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;
И писал для извлечения каждого ресурса этот код:
Код:
procedure ???;
 begin
     ExtractRes('???', '???', WinDir+ '???);
   end;
end; exports ???;
Но это надо писать для каждого ресурса.
Есть ли возможность вызвать процедуру ExtractRes из исполняимого файла например
Код:
procedure ExtractRes(ResType, ResName, ResNewName : String) stdcall;
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;
exports ExtractRes;
В exe:

procedure ExtractRes(ResType, ResName, ResNewName : String) stdcall; external 'data\wallRess.dll';

procedure TForm1.Button3Click(Sender: TObject);
begin
ExtractRes('???', '???', 'путь');
end;
Это неработает!!!
Помагите пожалуйсто!
Зарание благодарен!
С уважением,
Volkogriz !
Не количеством плюсов измеряется репутация человека...!

Последний раз редактировалось Stilet; 06.10.2010 в 08:31.
Volkogriz вне форума Ответить с цитированием
Старый 06.10.2010, 08:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я не проверял но предполагаю следующее:
Код:
procedure ExtractRes(ResType, ResName, ResNewName : String) stdcall;
var
Res : TResourceStream;h:THandle;
begin
h:=LoadLibrary(<Путь к файлу>);
if h<>0 then
 Res := TResourceStream.Create(h, Resname, Pchar(ResType));
 Res.SavetoFile(ResNewName);
 Res.Free;
 FreeLibrary(h);
end;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.10.2010, 08:52   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
Это неработает!!!
Помагите пожалуйсто!
Цитата:
Есть длл с ресурсом,
теперь и параметрами строками.
Есть ли sharemem?
Что это такое и зачем? Смотри примечание(комментарий) который Delphi специально добавляет при создании нового проекта DLL.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



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