Hi Przemek,
! Fixed GetProcAddress() passed ordinals to always be WORDs casted to DWORD. ! Fixed a few possible buffer overruns. * Cleanup, format, etc. ; Compile with HB_NO_ASM if you use BCC55 and don't have TASM32 (or upgrade to free BCC58 which contains TASM32).Please note that this code is ABI dependent. In WIN64 pointer size has 64bit and it uses different ABI so this code will not work. Now it has to be disabled for such builds. But for WIN64 it should be possible to easy eliminate asm code. 1-st 10 parameters are passed in registers (AFAIR RAX, RCX, RX1, ..., RX8) so simple casting of function pointer to some function with 10 _INT64 parameters and passing this parameters or 0 for unused should be enough to execute any function. It's even possible to eliminate .asm code also for 32bit platform using similar dirty hack with casting but it will have to be more complicated.
I thought you'll know the solutions to these problems :) It's too much for me though, especially since I couldn't even try these as they are now. Maybe I broke it, but the original code didn't work for me the same way either. Not having any test code doesn't help either. I've added it in hope that it ignites some interest (and to help porting 3rd party stuff), and that it will get properly fixed eventually. If it's you, even better.
I added C structures ported from xharbour to XHB library so maybe you can enable them optionally.
It would create cross dependency which I wanted (and want) to avoid. In any case, if someone needs "c struct" support, it's enought to use CFLAGS=-D__XHARBOUR__ for hbw32. Not tested, but the code is there, intact. Brgds, Viktor _______________________________________________ Harbour mailing list [email protected] http://lists.harbour-project.org/mailman/listinfo/harbour
