Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern? (https://www.delphipraxis.net/154689-wie-kann-man-dateien-von-einer-dll-datei-hollen-und-auf-hd-speichern.html)

thomas2009 30. Sep 2010 22:58

AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
 
Zurück zu dem Thema Leute

ich habe mehrere Dateien in eine .dll als Ressource gespeichert. Wie kann ich diese wieder von dll auf die Festplatte speichern. Allerdings die Namen meiner Dateien weiß ich natürlich

dll Datei heisst : meineDll.dll
Datei-Name in Ressource :
test01.mp3 RT_RCDATA test11.mp3

Wie hole ich die Datei test1.mp3 aus der datei meineDll.dll und speichere ich auf die Festplatte ?

Luckie 30. Sep 2010 23:14

AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var myRes : TResourceStream;
begin

myRes:=TResourceStream.Create(Hinstance,'video1.mp3','23');
myRes.SaveToFile('video1.mp3');
myRes.free;

end;
HInstance muss natürlich das Handle der DLL sein, d.h. du musst vorher mit LoadLibrary die DLL laden.

Luckie 1. Okt 2010 00:18

AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Damit das hier mal ein Ende hat.

Ressourcenskript:
Code:
Anne RCDATA Anne.jpg
DLL:
Delphi-Quellcode:
library ResDLL;

{$R resource.res}

begin
end.
Exe:
Delphi-Quellcode:
procedure ExtractResFromDLL(DLLName: String; ResName: String; Filename: String; ResType: PChar);
var
  dll: THandle;
  ResStream: TResourceStream;
begin
  dll := LoadLibraryEx(PChar(DLLName), 0, LOAD_LIBRARY_AS_DATAFILE);
  if dll <> 0 then
  begin
    ResStream := TResourceStream.Create(dll, ResName, RT_RCDATA);
    try
      try
        ResStream.SaveToFile(Filename);
      except
        on E: Exception do
          raise Exception.Create(E.Message);
      end;
    finally
      ResStream.Free;
    end;
  end
  else
    RaiseLastOSError;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    ExtractResFromDLL(ExtractFilePath(ParamStr(0)) + 'ResDLL.dll', 'Anne', ExtractFilePath(ParamStr(0)) + 'Anne.jpg', RT_RCDATA);
  except
    on E: Exception do
      ShowMessage(E.Message);
  end;
end;
Und das ganze noch mal als lauffähige Demo im Anhang.

thomas2009 1. Okt 2010 00:51

AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
 
Danke @Luckie für Deine Mühe
es hat geklappt :)

Luckie 1. Okt 2010 00:53

AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
 
Woran hat es gelegen? Und nimmst du jetzt meine Funktion?

thomas2009 10. Okt 2010 20:50

AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
 
Mit Deiner Funktion hat es geklappt natürlich :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz