New issue 2360: Windows ctypes.CDLL : TypeError: function name must be a string 
or integer
https://bitbucket.org/pypy/pypy/issues/2360/windows-ctypescdll-typeerror-function-name

RyoYokoyama:

On Windows, ctypes.CDLL cannot accept unicode function name.

On PyPy2:
```
#!python
>>>> import ctypes
>>>> lib = ctypes.CDLL('sqlite3')
>>>> lib[b'sqlite3_libversion']()
1642690176
>>>> lib[u'sqlite3_libversion']()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\pypy2\lib-python\2.7\ctypes\__init__.py", line 387, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
  File "c:\pypy2\lib_pypy\_ctypes\function.py", line 254, in __init__
    ptr = self._getfuncptr([], ctypes.c_int)
  File "c:\pypy2\lib_pypy\_ctypes\function.py", line 439, in _getfuncptr
    self._ptr = cdll.getfunc(self.name, ffi_argtypes, ffi_restype)
TypeError: function name must be a string or integer
```

On CPython 2.7:
```
#!python
>>> import ctypes
>>> lib = ctypes.CDLL('sqlite3')
>>> lib[b'sqlite3_libversion']()
1787770432
>>> lib[u'sqlite3_libversion']()
1787770432
```


_______________________________________________
pypy-issue mailing list
pypy-issue@python.org
https://mail.python.org/mailman/listinfo/pypy-issue

Reply via email to