crt: Fix some symbols with duplicate stdcall suffixes
Some of these functions, such as `ConvertAtJobsToTasks`, are exported with both
undecorated and decorated names, respectively, `ConvertAtJobsToTasks` and
`_ConvertAtJobsToTasks@0`. The decorated names are almost useless for C code
anyway and are removed.
Some other stdcall functions, such as `__fls_getvalue`, are only exported with
decorated names. A new macro `DECORATED_EXPORT()` is introduced for them.
This fixes errors like
#include <stdio.h>
#include <windows.h>
/* This was `__stdcall` in X3DAUDIO1_2.DLL, and changed to `__cdecl` later. */
__declspec(dllimport) void __stdcall X3DAudioCalculate(void*, void*, void*, UINT, void*);
int main(void)
{
printf("X3DAudioCalculate = %p\n", (void*)(INT_PTR) X3DAudioCalculate);
}
which used to result in
test.c:(.text+0xf): undefined reference to `_imp__X3DAudioCalculate@20'
Signed-off-by: LIU Hao <lh_mouse@126.com>
9 files changed