From rswindell@VERT to CVS commit on Fri Mar 22 14:29:46 2019
src/xpdev wrapdll.h 1.7 1.8
Update of /cvsroot/sbbs/src/xpdev
In directory cvs:/tmp/cvs-serv32122/xpdev
Modified Files:
wrapdll.h
Log Message:
Use default calling convention (__cdecl) for DLL funcs in Borland builds.
Fix age-old bug with Borland/C++Builder built executables (Windows):
to achieve compatibility with the default __cdecl symbol naming rules of Visual C++, we were using __stdcall convention for DLL functions when
building code with Borland/C++Builder tools and using the default (__cdecl) convention when building with Microsoft (Visual C++) tools. Although this allowed symbols to be located when linking, the calling convention mismatch caused a stack cleanup issue that very rarely manifested itself in a bug
(e.g. exception of some kind in sbbsctrl.exe, usually). Mismatching
the calling conventions was unintentional (I thought the default for MSVC
DLL functions was __stdcall) - but since the calls to MSVC-Built DLL functions worked 99% of the time, I didn't realize there was an underlying issue. So I now work-around the DLL symbol naming mismatch using a command-line option (-a) passed to implib in src/sbbs3/ctrl/makelibs.bat
I had previously worked-around exceptions when calling MSVC DLL functions in sbbsctrl.exe by calling the problematic DLL functions from a timer tick handler rather than a user control (e.g. button) event handler. Those work-arounds can now be removed.
The erroneous "DLLCALL" definition design pattern was replicated (copy/pasted) to many other projects' header files in cvs.synchro.net. In the future, we may want to just remove all instances of *CALL since they now serve no purpose and appear as useless "Kruft" (but do allow us to more-easily globally change DLL function calling conventions if/when necessary in the future).
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
Who's Online
Recent Visitors
Ragnarok
Sat Sep 13 04:32:13 2025
from
Dock Sud
via
Telnet
Gus8027
Sat Sep 13 03:35:28 2025
from
Buenos Aies
via
Telnet
Ragnarok
Sat Sep 13 01:51:04 2025
from
Dock Sud
via
HTTP
Ragnarok
Sat Sep 13 01:50:17 2025
from
Dock Sud
via
SSH
Guest
Sat Sep 13 00:25:47 2025
from
Linuxshell
via
Raw
Damian Kleiman
Fri Sep 12 22:55:56 2025
from
Rosario, Sf
via
Telnet
Ragnarok
Fri Sep 12 09:09:14 2025
from
Dock Sud
via
NNTP
Ragnarok
Thu Sep 11 20:41:27 2025
from
Dock Sud
via
SSH
Damian Kleiman
Thu Sep 11 00:01:30 2025
from
Rosario, Sf
via
Telnet
Ragnarok
Wed Sep 10 22:41:23 2025
from
Dock Sud
via
SSH