Zip UDF Problem

  • Hallo zusammen,

    ich habe ein Problem mit dem folgenden UDF-File ->
    Ich möchte es zum entzippen von passwortgeschützen Zip Dateien verwenden, nur leider funkt es nicht ganz. Wenn ich zum Beispiel, die Example.au3 nicht im selben Ordner habe, wie die Dlls und Zip32.au3 bekomme ich immer wieder folgenden Fehlermeldung

    .... zip_udf\Includes\Zip32.au3 (276) : ==> Subscript used with non-Array variable.:
    If $aRet[0] <> 0 Then Return SetError(1, 0, 0)
    If $aRet^ ERROR


    Aber wenn ich die Example.au3 im selben Ordner habe, klappt es einwandfrei. Ich habe im #include Part, den Pfad auch angepasst gehabt. Daran liegt es nicht, siehe obige Meldung. Ich weiß nicht weiter. Hat einer eine IDEE?

    Einmal editiert, zuletzt von Kirsche (20. Mai 2009 um 08:35)

    • Offizieller Beitrag

    HI,

    bei mir nicht.
    Wenn dieser DLLCALL einen Fehler liefert, dann gibt es auch kein Array

    $aRet = DllCall($hUnZipDll, "int", "Wiz_SingleEntryUnzip", "int", $iFileNumberIncl, "ptr*", DllStructGetPtr($FileInclude), _
    "int", $iFileNumberExcl, "ptr*", DllStructGetPtr($FileExclude), "ptr", DllStructGetPtr($DCLIST), _
    "ptr", DllStructGetPtr($USERFUNCTIONS))

    If $aRet[0] <> 0 Then Return SetError(1, 0, 0)

    Mega

  • Also ich habe die Example.au3 in einen Ordner Example gelegt, und die Zip32.au3 und dlls in einen Ordner Include gelegt. Bei der Example.au3 den #include path angepasst (<../Includes/Zip32.au3>). Dann eine Zip Datei in irgendeinem Folder ausgewählt und irgendwohin extrahiert. Dann bekomm ich diese Fehlermeldung.

  • Wenn dein Beispiel-Skript nicht im gleichen Verzeichnis wie die DLLs ist, dann funktioniert es nicht. Du musst dann nach dem Include die DLL-Dateien öffnen:

    [autoit]

    #include <../Includes/Zip32.au3>
    If $hZipDll<0 then $hZipDll = DllOpen("PFAD\UIR\DLL\zip32.dll")
    If $hUnZipDll<0 then $hUnZipDll = DllOpen("PFAD\UIR\DLL\unzip32.dll")

    [/autoit]