AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?

Ein Thema von thomas2009 · begonnen am 21. Sep 2010 · letzter Beitrag vom 10. Okt 2010
Antwort Antwort
Seite 2 von 2     12   
thomas2009
(Gast)

n/a Beiträge
 
#11

AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?

  Alt 30. Sep 2010, 22:58
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 ?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?

  Alt 30. Sep 2010, 23:14
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?

  Alt 1. Okt 2010, 00:18
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.
Angehängte Dateien
Dateityp: zip ExtractResFromDLL.zip (1,11 MB, 3x aufgerufen)
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie ( 1. Okt 2010 um 00:39 Uhr)
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#14

AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?

  Alt 1. Okt 2010, 00:51
Danke @Luckie für Deine Mühe
es hat geklappt
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?

  Alt 1. Okt 2010, 00:53
Woran hat es gelegen? Und nimmst du jetzt meine Funktion?
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie ( 1. Okt 2010 um 01:00 Uhr)
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#16

AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?

  Alt 10. Okt 2010, 20:50
Mit Deiner Funktion hat es geklappt natürlich
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz