The standalone {.pragma: stdcall.} doesn't do anything, so you end up with
default nim calling convention, which is fastcall on windows iirc. The pragma
should be either pushed {.push stdcall.} or appended to every proc. Now
regarding why both cdecl and stdconv. They really should not, but maybe you're
lucky enough to not see the difference. Either way, you should use the proper
one. More info on conventions:
[https://en.wikipedia.org/wiki/X86_calling_conventions](https://en.wikipedia.org/wiki/X86_calling_conventions)