| 
							- diff -Naur Python-3.8.0-orig/Modules/_ctypes/_ctypes.c Python-3.8.0/Modules/_ctypes/_ctypes.c
 - --- Python-3.8.0-orig/Modules/_ctypes/_ctypes.c	2019-10-14 16:34:47.000000000 +0300
 - +++ Python-3.8.0/Modules/_ctypes/_ctypes.c	2019-10-22 10:02:10.434865800 +0300
 - @@ -3342,11 +3342,30 @@
 -      mangled_name = alloca(strlen(name) + 1 + 1 + 1 + 3); /* \0 _ @ %d */
 -      if (!mangled_name)
 -          return NULL;
 - +    /* Issue: for stdcall decorated export functions MSVC compiler adds
 - +     * underscore, but GCC compiler create them without. This is
 - +     * visible by example for _ctypes_test.pyd module.
 - +     * As well functions from system libraries are without underscore.
 - +     * Solutions:
 - +     * - If a python module is build with gcc option --add-stdcall-alias
 - +     * the module will contain XXX as alias for function XXX@ as result
 - +     * first search in this method will succeed.
 - +     * - Distutil may use compiler to create def-file, to modify it as
 - +     * add underscore alias and with new def file to create module.
 - +     * - Or may be just to search for function without underscore.
 - +     */
 -      for (i = 0; i < 32; ++i) {
 -          sprintf(mangled_name, "_%s@%d", name, i*4);
 -          Py_BEGIN_ALLOW_THREADS
 -          address = (PPROC)GetProcAddress(handle, mangled_name);
 -          Py_END_ALLOW_THREADS
 - +        if (address)
 - +            return address;
 - +        /* search for function without underscore as weel */
 - +        sprintf(mangled_name, "%s@%d", name, i*4);
 - +        Py_BEGIN_ALLOW_THREADS
 - +        address = (PPROC)GetProcAddress(handle, mangled_name);
 - +        Py_END_ALLOW_THREADS
 -          if (address)
 -              return address;
 -      }
 
 
  |