diff --git a/django/contrib/gis/geos/prototypes/errcheck.py b/django/contrib/gis/geos/prototypes/errcheck.py index 0d5e9e24fc..a00b93be6e 100644 --- a/django/contrib/gis/geos/prototypes/errcheck.py +++ b/django/contrib/gis/geos/prototypes/errcheck.py @@ -1,6 +1,7 @@ """ Error checking functions for GEOS ctypes prototype functions. """ +import os from ctypes import c_void_p, string_at, CDLL from django.contrib.gis.geos.error import GEOSException from django.contrib.gis.geos.libgeos import lgeos, GEOS_VERSION @@ -15,8 +16,12 @@ if GEOS_VERSION >= (3, 1, 1): free.restype = None else: # Getting the `free` routine from the C library of the platform. - # The C library is obtained by passing None into `CDLL`. - libc = CDLL(None) + if os.name == 'nt': + # On NT, use the MS C library. + libc = CDLL('msvcrt') + else: + # On POSIX platforms C library is obtained by passing None into `CDLL`. + libc = CDLL(None) free = libc.free ### ctypes error checking routines ###