[fpc-pascal] USB Human Interface Devices
Stefan V. Pantazi
svpantazi at gmail.com
Sat Aug 17 18:11:14 CEST 2019
Libusb can be compiled with either calling convention - one just has to
be sure which one.
In https://github.com/Zaaphod/libusbxhid/blob/master/libusbx.pas (line
35), the windows calling convention is stdcall and that apparently works
for both 64 and 32 bit windows. So, James' libusb10 dlls use stdcall.
Also, I was under the impression that unlike linux, Windows apps would
compile regardless of the calling convention. Only when launching the
app and loading a dynamic library a wrong calling convention make things
blow up. Anyway, this is definitely something to look into.
On 8/17/19 11:46 AM, Jean SUZINEAU wrote:
> Le 17/08/2019 à 17:10, Stefan V. Pantazi a écrit :
>> The obvious first thing to make sure is that the calling convention
>> matches the library for the platform. I see that in
>> https://github.com/Zaaphod/pas-libusb/blob/Hack/src/libusb.pas 9line 46)
>> the calling convention on Windows is cdecl (the stdcall is commented
>> out). In libusbxhid, if I remember correctly, the calling convention
>> for windows dlls is set to stdcall.
> Yes it's curious.
>
> Usually with Microsoft dlls from the Windows API, you use stdcall. Here
> with stdcall I get an error "Import library not found for libusb-1.0".
>
> So I commented out the stcall changed it to cdecl.
>
> This allows to compile without errors and test1library.pas works without
> error, it seems cdecl is the right calling convention for libusb-1.0.
>
>> One other thing is that debugging is much more tedious without an
>> integrated debugger that allows you to step through each line before
>> you can see which function call blows up with a segfault.
> James works on the command line but fp.exe seems to integrate gdb.exe
> the same way that lazarus does, you nearly have the same shortcuts keys
> for debugging between Turbo Pascal 5.5, fp.exe and lazarus ...
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
--
_______________________________________________________
More information about the fpc-pascal
mailing list