So I understand that CreateThread and the CRT can result in memory leaks, signal doesn\'t work, and one should use the _beginthread or _beginthreadex functions.
Ship multiple DLLs, one for every supported tool-chain version.
Where 1 is not an acceptable solution, 2 is chosen. Note that you have to ship multiple DLLs anyway, e.g. if your users compile for 32-bit and 64-bit architecture.