![]() |
Rar Dll
Guten morgen,
Ich würde gerne mein Programm eine .rar Datei entpacken lassen. Habe dazu auch schon ![]() und ![]() Touturial gefunden. Wollte die Dll am Anfang erst mal statisch einbinden. Aber wenn ich diesen Code anwende:
Delphi-Quellcode:
Kommt bei der Zeile:
function RAROpenArchive(ArchiveData: PRAROpenArchiveData): THandle; stdcall;
external 'C:\urar.dll'; function RARProcessFile(hArcData: THandle; Operation: Integer; DestPath: PChar; DestName: PChar): Integer; stdcall; external 'C:\unrar.dll'; procedure TForm1.Button1Click(Sender: TObject); begin h:=RAROpenArchive('c:\b.rar'); RARProcessFile(h,RAR_EXTRACT,nil,nil); end; function RAROpenArchive(ArchiveData: PRAROpenArchiveData): der Fehler unit1.pas(31,57) Error: Identifier not found "PRAROpenArchiveData" ud hier: RARProcessFile(h,RAR_EXTRACT,nil,nil);, dass: unit1.pas(43,31) Error: Identifier not found "RAR_EXTRACT" Hier einmal alle Fehlermeldungen(jetzt sind auch Bemerkungen dabei) unit1.pas(31,57) Error: Identifier not found "PRAROpenArchiveData" unit1.pas(42,31) Error: Incompatible type for arg no. 1: Got "Constant String", expected "<erroneous type>" unit1.pas(31,10) Hint: Found declaration: RAROpenArchive(<erroneous type>):DWord; StdCall; unit1.pas(43,31) Error: Identifier not found "RAR_EXTRACT" unit1.pas(51) Fatal: There were 3 errors compiling module, stopping Kann mir jemand helfen, bzw. ein klleines Stückchen Code geben? Danke schonmal für eure Antworten |
AW: Rar Dll
![]() Für Lazurus musst du vielleicht noch ein paar Anpassungen machen |
AW: Rar Dll
Der Schreibfehler für den DLL-Namen in genau dieser Zeile ist dir aufgefallen?
Solle UNRAR.DLL und nicht URAR.DLL lauten...
Delphi-Quellcode:
function RAROpenArchive(ArchiveData: PRAROpenArchiveData): THandle; stdcall;
external 'C:\urar.dll'; |
AW: Rar Dll
Aber du darfst auch bei Lazarus-Code gerne den Delphi-Tag nehmen!
|
AW: Rar Dll
Danke, der ist aber öeider nicht mal entscheident,
es kommt wegen der Fehler gar nich erst zur ausführung:( P.S. Sorry vllt. kans jemand noch vreschieben? |
AW: Rar Dll
Zitat:
Schau dir mal meinen Link an den ich oben gepostet hab. |
AW: Rar Dll
Und den absoluten Pfad anzugeben ist auch nicht sonderlich gut.
(abgesehn davon, daß solche DLLs nicht nach C:\ gehören) Ohne Pfad
Delphi-Quellcode:
sollte ausreichen
... external 'urar.dll';
das System sucht sich dann die DLL in den allgemein gültigen Verzeichnissen (Programmverzeichnis, Windos/System32 und andere global registrierte Pfade/%PATH% ) |
AW: Rar Dll
Hallo,
da in der unrar.pas kein PRAROpenArchiveData definiert ist, würde ich es so machen
Delphi-Quellcode:
oder du ergänzt die pas-Datei
function RAROpenArchive(var ArchiveData: TRAROpenArchiveData) XXX
Delphi-Quellcode:
PRAROpenArchiveData = ^TRAROpenArchiveData;
TRAROpenArchiveData = packed record Heiko |
AW: Rar Dll
Lazarus kommt mit den @ nicht klar:
unit1.pas(168,14) Error: Incompatible types: got "<procedure variable type of function:LongInt;StdCall>" expected "LongInt" unit1.pas(183,7) Error: Can't assign values to an address unit1.pas(184,7) Error: Can't assign values to an address unit1.pas(185,7) Error: Can't assign values to an address unit1.pas(186,7) Error: Can't assign values to an address unit1.pas(187,7) Error: Can't assign values to an address unit1.pas(188,7) Error: Can't assign values to an address unit1.pas(189,7) Error: Can't assign values to an address unit1.pas(190,7) Error: Can't assign values to an address unit1.pas(191,7) Error: Can't assign values to an address unit1.pas(219,31) Error: Incompatible types: got "Constant String" expected "TRAROpenArchiveData" unit1.pas(228) Fatal: There were 13 errors compiling module, stopping |
AW: Rar Dll
Und noch eine Frage:
Wie entpacke ich mit der unrar.pas? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 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