Показать сообщение отдельно
  #8  
Старый 31.05.2015, 20:50
Аватар для Alloc
Alloc Alloc вне форума
Начинающий
 
Регистрация: 17.09.2014
Сообщения: 104
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Э, кто вызов конструктора под try то пихает?

я пробовал и так и сяк.. все тоже самое..

Я вот последовал совету Bargest насчет WinAPI и нашел следующую функцию:

Код:
function ResourceToFile(lpType, lpName, FileName: PChar): BOOL;
var
  HResInfo: HWND;
  HGlobal: HWND;
  FMemory: Pointer;
  FSize, FHandle: Integer;
  nl: Cardinal;
begin
  HResInfo := FindResource(HInstance, lpName, lpType);
  HGlobal := LoadResource(HInstance, HResInfo);
  FMemory := LockResource(HGlobal);
  FSize := SizeOfResource(HInstance, HResInfo);
  FHandle := Integer(CreateFile(FileName, GENERIC_READ or GENERIC_WRITE,
                     0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0));
  Result := WriteFile(HWND(FHandle), FMemory^, FSize, nl, nil);
  CloseHandle(HWND(FHandle));
end;

По идее она должна возвращать FALSE если не удалось распаковать файл?
И еще прошу объяснить почему если я создаю файл ресурсов такого типа:

Код:
devcon EXEFILE devcon.exe

распаковать получается а если:

Код:
devcon RCDATA devcon.exe

не получается... а вот если я создаю контейнер допустим RCDATA_1 тогда работает. Скажите можно ли так делать? Имеет ли какое то значение в каком контейнере я храню файлы?
Ответить с цитированием