Hello,
around July 2009, I implemented a translation dll, allowing to run Win32 programms using ftd2xx.dll with Wine translating the calls to linux-libftd2xx. It was done while looking at dll/glu32.
I was able to run mprog.exe (www.ftdichip.org) some time ago. Reapplying now, I hit an infinite loop with the first translated call.
I short, ftd2xx.spec contains:
@ stdcall FT_ListDevices(ptr ptr long) FTD2XX_FT_ListDevices
and ftd2xx_main.c:
extern FT_STATUS FT_ListDevices(PVOID, PVOID, DWORD); FT_STATUS WINAPI FTD2XX_FT_ListDevices( PVOID pArg1, PVOID pArg2, DWORD Flags ) { FT_STATUS res = FT_ListDevices(pArg1, pArg2, Flags); TRACE("res %s\n", res2string(res)); return res; }
and dlls/ftd2xx/Makefile.in contains: EXTRALIBS = @FTD2XXLIBS@
with EXTRALIBS detected in configure.ac.
MProig.exe calls FT_ListDevices(), which is resolves as FTD2XX_FT_ListDevices(). Then FTD2XX_FT_ListDevices() is entered and FT_ListDevices() resolves again to FTD2XX_FT_ListDevices(), resulting in an infinite loop.
Can anybody help with the flaw in my implementation? Or did anything change in wine?
The patches still linger on the mailing-list as "Stub implementation for ftd2xx.dll"
Thanks