Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > не извлекаются ресурсы из консольного приложения


Автор: shoker 16.11.2012, 12:45
не извлекаются ресурсы из консольного приложения
код:
Код

program Project1;

{$APPTYPE CONSOLE}
uses
  SysUtils,
  classes;
implementation
{$R res.res}

procedure ExtractRes(ResType,ResName,ResNewName:String);
var
  Rs : TResourceStream;
begin
Rs:=TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Rs.SavetoFile(ResNewName);
Rs.Free;
end;

procedure create();
begin
  ExtractRes('EXE', 'rc_data', 'Demo.exe');
end;
end.


все компилируется,но ничего не происходит(не извлекается файл в папку) я думаю это из-за строчки
Код

procedure create();

вернее из-за ее параметров,как их назначить?и вообще в этом ли дело?заранее  спасибо

Автор: Чучмек 16.11.2012, 12:57
А зачем она нужна?
Код

program Project1;
{$APPTYPE CONSOLE}
uses
  SysUtils,
  classes;
implementation
{$R res.res}
procedure ExtractRes(ResType,ResName,ResNewName:String);
var
  Rs : TResourceStream;
begin
Rs:=TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Rs.SavetoFile(ResNewName);
Rs.Free;
end;

begin
  ExtractRes('EXE', 'rc_data', 'Demo.exe');
end.

Автор: shoker 16.11.2012, 14:08
кто она?программа или сама процедура?

Автор: Чучмек 16.11.2012, 14:16
Цитата(shoker @  16.11.2012,  14:08 Найти цитируемый пост)
сама процедура


Автор: shoker 16.11.2012, 18:26
как я понял первая процедура-объявляется,а вот следующая исполняется,только в том коде от куда я сдирал был  обработчик события кнопки,а при копипасте в консоль-не робит,решил попробывать сам написать,и вот....не знаю какие параметры указать

Автор: northener 16.11.2012, 18:31
Цитата(shoker @  16.11.2012,  18:26 Найти цитируемый пост)
как я понял первая процедура-объявляется,а вот следующая исполняется

Неправильно понял.
А ответ Чучмек уже дал в http://forum.vingrad.ru/index.php?showtopic=359030&view=findpost&p=2531009

Автор: shoker 16.11.2012, 18:44
убрал эту процедуру
Код

program Project1;

{$APPTYPE CONSOLE}
{$R res.res}
uses
  SysUtils,
  classes;

procedure ExtractRes(ResType,ResName,ResNewName:String);
var
  Rs : TResourceStream;
begin
Rs:=TResourceStream.Create(Hinstance, 'exe', Pchar('rcdata'));
Rs.SavetoFile('tester.exe');
Rs.Free;
end;

end.


эффекта ноль,что с ней что без нее

Автор: northener 16.11.2012, 18:56
Цитата(shoker @  16.11.2012,  18:44 Найти цитируемый пост)
эффекта ноль

А с чего возьмется эффект, если самого тела программы нет?
А в примере Чучмека оно есть:
Код

begin
  ExtractRes('EXE', 'rc_data', 'Demo.exe');
end.


Автор: shoker 16.11.2012, 19:17
исключение неизвестное программное исключение выдает...

Автор: Чучмек 17.11.2012, 20:38
Цитата(shoker @  16.11.2012,  19:17 Найти цитируемый пост)
исключение неизвестное программное исключение выдает... 

А ресурс, который ты извлекаешь, существует???

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)