mpusbapi.dll funktioniert nicht mehr
Verfasst: 25.03.2020 11:44
Hallo Foraner!
Ich habe vor einiger Zeit ein Programm geschrieben, das die mpusbapi.dll https://github.com/mentatpsi/Microchip/ ... usbapi.dll mit USB4ALL von Sprut verwendet.
Nun wollte ich das Codefragment wiederverwenden, aber es funktioniert nicht mehr.
Nach langem rumprobieren mit versch. Windows-Versionen habe ich herausgefunden, dass es an der neueren Version von Pure-Basic liegt!
Folgender, aufs Minimum heruntergebrochene, Code ruft die Funktion "_MPUSBOpen" in PureBasic 4.10 korrekt auf, versagt aber mit der Version 5.62 (Rückgabewert -1):
Der Aufruf "_MPUSBGetDLLVersion" und "_MPUSBGetDeviceCount" funktionieren nach wie vor!
Was wurde hier geändert und wie krieg ich das wieder hin?
Vielen Dank!
Gruss Chregu
Ich habe vor einiger Zeit ein Programm geschrieben, das die mpusbapi.dll https://github.com/mentatpsi/Microchip/ ... usbapi.dll mit USB4ALL von Sprut verwendet.
Nun wollte ich das Codefragment wiederverwenden, aber es funktioniert nicht mehr.
Nach langem rumprobieren mit versch. Windows-Versionen habe ich herausgefunden, dass es an der neueren Version von Pure-Basic liegt!
Folgender, aufs Minimum heruntergebrochene, Code ruft die Funktion "_MPUSBOpen" in PureBasic 4.10 korrekt auf, versagt aber mit der Version 5.62 (Rückgabewert -1):
Code: Alles auswählen
Selection.l
*SendData = AllocateMemory(64)
*RecvData = AllocateMemory(64)
vid_pid.s = "vid_04d8&pid_ff0b" ;für Sprut Gerät
out_pipe.s = "\MCHP_EP1" ;ein Backslash!
in_pipe.s = "\MCHP_EP1"
myOutPipe.l = 0
myInPipe.l = 0
MP_WRITE.l = 0
MP_READ.l = 1
Debug "Adresse Vid/Pid: " + Str(@vid_pid.s)
;Debug "Oeffnen der DLL:"
Ergebnis.l = OpenLibrary(0, "mpusbapi.dll")
Debug "Ergebnis OpenLibrary: " + Str(Ergebnis.l)
Ergebnis.l = CallCFunction(0, "_MPUSBGetDLLVersion")
Debug Str(Ergebnis.l)
Ergebnis.l = CallCFunction(0, "_MPUSBGetDeviceCount", @vid_pid.s)
Debug Str(Ergebnis.l)
myOutPipe.l = CallCFunction(0, "_MPUSBOpen", Selection.l, @vid_pid.s, @out_pipe.s, MP_WRITE.l, 0)
Debug "1. CallCFunction: " + Str(myOutPipe.l)
myInPipe.l = CallCFunction(0, "_MPUSBOpen", Selection.l, @vid_pid.s, @in_pipe.s, MP_READ.l, 0)
Debug "2. CallCFunction: " + Str(myInPipe.l)
FreeMemory(*SendData)
FreeMemory(*RecvData)
End
Was wurde hier geändert und wie krieg ich das wieder hin?
Vielen Dank!
Gruss Chregu