Hallo Zusammen,
ich möchte gerne ein Programm schreiben welches mir aus einen Verzeichnis alle vorhandenen RAR Dateien automatisch nacheinander (eine Art Batch verarbeitung) entpackt. Leider habe ich das Problem, das ich die unrar.dll von http://www.rarlab.com/rar/UnRARDLL.exe nicht in mein Programm einbinden kann 😦
Ich hoffe einer von Euch kann mir helfen.
Besten Dank schon mal für die Mühe.
Gruß
LT
Hi,
kennst du denn die Methoden aus der unrar.dll, die du für das entpacken benötigst?
Mittels DLLIMPORT sollte ein Aufruf dieser Methoden möglich sein, wenn sie denn dementsprechend in der unrar.dll angegeben sind.
Vielleicht wäre es besser per Process Start die exe für das entpacken aufzurufen?
gruss
Dennie Schmögner
Dipl. Ing. Informatik / Fachrichtung Automatisierungstechnik
Microsoft Business Intelligence 2005
SharePoint Portal Server 2007
was heißt "nicht einbinden kann"?
normalerweise müßte es gehn... du bindest die funktionen genauso ein wie auch aus kernel32.dll usw. - über pinvoke (www.pinvoke.net ist glaub ich ne seite für sowas)
welche funktionen in der dll stecken mitderen parametern gibts betsimmt als docu bei rar
was hast du denn schon probiert und was gabs für probleme?
nachtrag:
bei der suche in goole fand ich diese seite, die dir sicher weiter hilft =)
http://www.pcreview.co.uk/forums/thread-1349875.php
das Zauberwort heißt PInvoke.
du kannst mit Hilfe von DllImportAttribute auf die Funktionen aus der Dll zugreifen. Signatur der Funktionen hast du in den entsprechenden Header-Dateien.
Die Methoden sind unter rarlab beschrieben ( Programmbeispiele ). Das wird dann schon irgendwie funzen, aber wie gesagt VS 2003 wirft mir folgende Fehlermeldung wenn ich dieses Probiere :
1.)Neues Projekt
2.)rechtsklick Verweise - Verweishinzufügen
3.)Durchsuchen : unrar.dll - hinzufügen ( die dll steht unter ausgewählte Komponenten)
4.)Ok
Jetzt kommt folgende Fehlermeldung :
Es konnte kein Verweis aud C:\VisualStudio\UnRAR\unrar.dll hinzugefügt werden. Dies ist keine Assembly oder COM Komponente.....
Gibt es noch einen anderen Weg eine .dll zu Importieren ???
thx
André
...oh Sorry, bin Neuling in der Programmierung .
Was meinst Du mit : PINVOKE ? Was ist das ?
Du hast es hier mit einer DLL zu tun, die nicht .NET ist. Nur .NET-DLLs kannst du aber als Verweise einem .NET-Projekt hinzufügen.
"Normale" DLLs muss man über einen Mechanismus aufrufen, der PInvoke genannt wird (siehe DLLImport). Dazu muss man die Funktionen, die man aufrufen will, in .NET-Schreibweise explizit definieren. Auch auf die Typenumsetzung muss geachtet werden. Stichwort für die Hilfe ist wie gesagt DLLImort.
Ehrlich gesagt: Das Thema ist nix für Anfänger. Vielleicht findest du ja irgendwo im Internet jemanden, der sich die Mühe gemacht hat die fertigen "Imports" zur Verfügung stellt.
oh das hört sich wirklich nicht einfach an. Mist hätte gerne damit gezaubert.Im Netz hab ich nichts gefunden. Naja. Danke für die Hilfe.
Hier scheint jemand ne Lösung zu haben: