![]() |
Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
Hallo
ich habe mehrere Dateien in eine dll gespeichert. Wie kann ich diese wieder von dll auf die Festplatte speichern. Allerdings die Namen meiner Dateien weiß ich natürlich Meine Dateien heißen :test01.mp3 bis test11.mp3 |
AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
was verstehst du unter "in DLL gespeichert"? Wie sind denn die Dateien in der DLL drin? Als Ressourcen? Dann einfach mit meinem ResourceStream.
|
AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
meinedaten.RC :
video1.mp3 23 "video1.mp3"
Delphi-Quellcode:
Fehler : video1.mp3 nicht gefunden
implementation
{$R *.dfm} {$R meinedaten.RES} procedure TForm1.Button1Click(Sender: TObject); var myRes : TResourceStream; begin myRes:=TResourceStream.Create(Hinstance,'video1.mp3','23'); myRes.SaveToFile('video1.mp3'); myRes.free; end; |
AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
Hinstance = Handle des aktuellen Moduls, also in diesem Fall von der EXE.
Du brauchst hier natürlich das Handle der DLL :zwinker: ![]() Was soll denn 23 für ein ResType sein? PS: 23 <> '23' |
AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
Die Ressourcen sind sowohl in .Res als auch in einer .dll Datei
Ich möchte mit meinem Code zuerst versuchen die Dateien aus Ressource zu holen. |
AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
Versuch es mal mit RCDATA (in der RES) und RT_RCDATA im Programm.
|
AW: Wie kann man Dateien von einer Res / DLL Datei hollen und auf HD speichern?
Die RC kann ich leider nicht ändern
test1.mp3 23 "test1.mp3" So ist in .Res gespeichert leider |
AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
Ähh entschuldige die Frage, aber wei´t du ungefähr was du da überhaupt machst?
|
AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
Das Problem liegt nur an .RC Datei
die Datei .rc wurde leider in diesem Form erstellt : resource.rc : test1.mp3 23 test1.mp3 wenn aber die resource so wäre : test1.mp3 RCDATA test1.mp3 dann ist kein Problem die Dateien von rers zu holen :
Delphi-Quellcode:
und so geht ohne Probleme
var
RS: TResourceStream; begin RS := TResourceStream.Create(0, 'test1.mp3', RT_RCDATA); RS.SaveToFile('test1.mp3'); RS.Free(); aber leider ist die .rc statt RCDATA, 23 erstellt 23 gilt algemeine für HTML files Ich erhalte immer diese Fehlermeldung : test1.mp3 nicht gefunden ich habe versucht auch mit dem code :
Delphi-Quellcode:
RS := TResourceStream.Create(0, Pchar('test1.mp3'), Pchar('23'));
|
AW: Wie kann man Dateien von einer DLL Datei hollen und auf HD speichern?
Microsoft hat ein etwas seltsames System um Resource Typen zu kennzeichnen.
Hier die ![]() Einerseits ist der Resourcetyp eine Zahl, andererseits wird er über einen PCHAR übergeben. Die Idee dahinter ist wohl, dass man die API so offen halten wollte, dass man in Zukunft neben den Zahlenwerten auch Strings übergeben kann. Das Makro MAKEINTRESOURCEA erledigt für C-Compiler den Trick:
Code:
Daher:
#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))
Delphi-Quellcode:
Es ist natürlich eine Verletzung der Konventionen,
const
_RT_HTML = 23; // bitte prüfen, ob RT_HTML nicht schon in Unit Windows definiert wurde ... RS := TResourceStream.Create(0, Pchar('manual.html'), MAKEINTRESOURCE(_RT_HTML)); wenn hinter der Resource RT_HTML ein MP3-Video abgelegt wird. Das sollte man nicht tun. Richtig wäre hier der Typ RT_RCDATA. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr. |
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