I'm less than decent with dlls, but I'm in need of a dll to replace 7za.exe (command-line 7-Zip). I'm currently trying to use SevenZipSharp.dll with the following test script, with both the test archive and dll in the same directory as the script.
Code: Select all
sevPrc:=dllCall("LoadLibrary","Str","SevenZipSharp.dll","Ptr")
dllCall("SevenZipSharp\SevenZipExtractor",str,"wast.7z",str,"1") ; class constr - SevenZipExtractor(string file,string password)
dllCall("SevenZipSharp.dll\BeginExtractArchive",str,a_scriptdir) ; func - void BeginExtractArchive(string dir)
dllCall("FreeLibrary","Ptr",sevPrc)
I figured this wouldn't work, and it didn't, as the function is a member of a class (SevenZipExtractor). I'm not sure how to instantiate a class and call it's member in ahk, though. Line 2 and 3 both give me ErrorLevel -4. The process is being loaded, as it's ErrorLevel returns 0 and Process Explorer can find it attached to the script while running. There also, unfortunately, isn't a return value; I need to be able to tell if it was successfully extracted or not (maybe Check()?). For convenience, I've attached the help file for the dll.