Hi all,
i try Paul's code to uncompresse rar files (code snippet). His code is Ok
I want to use it in my app and i modify it for my use like this (i copy unrar.dll to C:\windows\system\ folder).
Code: Select all
Procedure.b InitUnrarPointers()#UnRar_dll = 1
result.b = 0
If OpenLibrary(#UnRar_dll,"C:\windows\system\unrar.dll")
MessageRequester("OpenLibrary","Ok",16)
*RAROpenArchive = IsFunction(#UnRar_dll ,"RAROpenArchive" )
*RARCloseArchive = IsFunction(#UnRar_dll ,"RARCloseArchive" )
*RARReadHeader = IsFunction(#UnRar_dll ,"RARReadHeader" )
*RARProcessFile = IsFunction(#UnRar_dll ,"RARProcessFile" )
*RARGetDllVersion = IsFunction(#UnRar_dll ,"RARGetDllVersion")
If *RAROpenArchive And *RARCloseArchive And *RARReadHeader And *RARProcessFile And *RARGetDllVersion
result = 1
EndIf
Else
MessageRequester("OpenLibrary", "Not Ok",16)
EndIf
ProcedureReturn result
EndProcedure
Code: Select all
Global Unrarpointers.b
Unrarpointers = InitUnrarPointers()
But OpenLibrary always failed.
I try with different values of #UnRar_dll (0 to 10). It still failed.
I change with a - for next - loop like this
Code: Select all
Procedure.b InitUnrarPointers()
#UnRar_dll = 1
result.b = 0
For i = 1 To 1
If OpenLibrary(#UnRar_dll,"C:\windows\system\unrar.dll")
MessageRequester("OpenLibrary","Ok",16)
*RAROpenArchive = IsFunction(#UnRar_dll ,"RAROpenArchive" )
*RARCloseArchive = IsFunction(#UnRar_dll ,"RARCloseArchive" )
*RARReadHeader = IsFunction(#UnRar_dll ,"RARReadHeader" )
*RARProcessFile = IsFunction(#UnRar_dll ,"RARProcessFile" )
*RARGetDllVersion = IsFunction(#UnRar_dll ,"RARGetDllVersion")
If *RAROpenArchive And *RARCloseArchive And *RARReadHeader And *RARProcessFile And *RARGetDllVersion
result = 1
EndIf
Else
MessageRequester("OpenLibrary", "Not Ok",16)
EndIf
Next i
ProcedureReturn result
EndProcedure
I don't know at all why.
May be i forget something, but what ?
Any idea
Denis
Bonne journée.