Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r2150:eb3b8aad6ecf Date: 2015-06-01 09:14 +0200 http://bitbucket.org/cffi/cffi/changeset/eb3b8aad6ecf/
Log: Windows test fix, and documentation about ffi.dlopen()'s restriction diff --git a/doc/source/cdef.rst b/doc/source/cdef.rst --- a/doc/source/cdef.rst +++ b/doc/source/cdef.rst @@ -278,6 +278,16 @@ needed. (Alternatively, the out-of-line FFIs have a method ``ffi.dlclose(lib)``.) +Note: the old version of ``ffi.dlopen()`` from the in-line ABI mode +tries to use ``ctypes.util.find_library()`` if it cannot directly find +the library. The newer out-of-line ``ffi.dlopen()`` no longer does it +automatically; it simply passes the argument it receives to the +underlying ``dlopen()`` or ``LoadLibrary()`` function. If needed, it +is up to you to use ``ctypes.util.find_library()`` or any other way to +look for the library's filename. This also means that +``ffi.dlopen(None)`` no longer work on Windows; try instead +``ffi.dlopen(ctypes.util.find_library('c'))``. + ffi.set_source(): preparing out-of-line modules ----------------------------------------------- diff --git a/testing/cffi1/test_re_python.py b/testing/cffi1/test_re_python.py --- a/testing/cffi1/test_re_python.py +++ b/testing/cffi1/test_re_python.py @@ -90,7 +90,11 @@ def test_dlopen_none(): import _cffi_backend from re_python_pysrc import ffi - lib = ffi.dlopen(None) + name = None + if sys.platform == 'win32': + import ctypes.util + name = ctypes.util.find_msvcrt() + lib = ffi.dlopen(name) assert lib.strlen(b"hello") == 5 def test_dlclose(): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit