Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi *.dll Datei zur Resource datei *.res machen (https://www.delphipraxis.net/77574-%2A-dll-datei-zur-resource-datei-%2A-res-machen.html)

newuser01 22. Sep 2006 11:12

Re: *.dll Datei zur Resource datei *.res machen
 
Hallo Heiko

Es funktioniert leider nicht mit der bass.dll ich habe folgendes gemacht

Delphi-Quellcode:
//bass.rc erstellt mit folgenden Inhalt

bassdll RCDATA bass.dll

//danach mit "brc32 -r bass.rc" Compiliert
als nächstes habe ich die bass.res in Delphi eingebunden mit

Delphi-Quellcode:
var
  Form1: TForm1;
  DLLRes: TResourceStream;


implementation

uses Unit2, Unit3;

{$R *.DFM}
{$R bass.res}
und so wird sie entpackt

Delphi-Quellcode:

  if not FileExists(ExtractFilePath(Application.ExeName)+'\bass.dll') then
  begin
    //wenn dll nicht vorhanden
    DLLRes :=TResourceStream.Create(0, 'bassdll', 'RT_RCDATA');
    DLLRes.SaveToFile(ExtractFilePath(Application.ExeName)+'\bass.dll');
  end
     else
         begin
  end;//if
Das funktioniert aber leider nicht die DLL wird nicht entpackt. Ich habe jetzt mit Tipp von "Carlo91" mit Visual C++ eine *.res Scriptdatei erstellt und die bass.dll importiert danach als bass.res abgespeichert und mit dieser*res funktioniert es jetzt

Entpackt wird sie so

Delphi-Quellcode:
DLLRes :=TResourceStream.CreateFromID(0, 101, PChar('DLL'));
DLLRes.SaveToFile(ExtractFilePath(Application.ExeName)+'\bass.dll');
//ich könnte auch zwei dll's einbinden muss dann nur die ID ändern also nicht 101 sondern 102 das funktioniert bestens anders bekomme ich es leider nicht hin :mrgreen:
DLLRes :=TResourceStream.CreateFromID(0, 102, PChar('DLL'));

Flocke 22. Sep 2006 11:49

Re: *.dll Datei zur Resource datei *.res machen
 
Zitat:

Zitat von newuser01
Delphi-Quellcode:

  if not FileExists(ExtractFilePath(Application.ExeName)+'\bass.dll') then
  begin
    //wenn dll nicht vorhanden
    DLLRes := TResourceStream.Create(0, 'bassdll', 'RT_RCDATA');
    DLLRes.SaveToFile(ExtractFilePath(Application.ExeName)+'\bass.dll');
  end
     else
         begin
  end;//if
Das funktioniert aber leider nicht die DLL wird nicht entpackt.

Das würde auch funktionieren, wenn du die Anführungszeichen um RT_RCDATA weglässt - das ist nämlich eine Konstante.

newuser01 22. Sep 2006 13:48

Re: *.dll Datei zur Resource datei *.res machen
 
kleiner Fehler große Wirkung DANKE Flocke und allen anderen auch !!!

newuser01 25. Sep 2006 16:46

Re: *.dll Datei zur Resource datei *.res machen
 
Dieser Beitrag hier "*dll Datei aus Resource entpacken" wäre doch für die Code-Library geeignet oder was denkt ihr darüber ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:20 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