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