MSVC defaults to stdcall for external functions
Huh? I thought it defaulted to `cdecl` by default, and it only defaults to `stdcall` if you pass `/Gz`. From [the relevant doc][1]:
**`/Gd`**, **the default setting** [emphasis added], specifies the **`__cdecl`** calling convention for all functions except C++ member functions and functions that are marked **`__stdcall`**, **`__fastcall`**, or **`__vectorcall`**.
[...]
**`/Gz`** specifies the **`__stdcall`** calling convention for all functions except C++ member functions, functions named `main`, and functions that are marked **`__cdecl`**, **`__fastcall`**, or **`__vectorcall`**. All **`__stdcall`** functions must have prototypes. This calling convention is only available in compilers that target x86, and is ignored by compilers that target other architectures.
[1]: https://learn.microsoft.com/en-us/cpp/build/reference/gd-gr-gv-gz-calling-co...