Bonjour,
Y a-t-il un moyen d'appeler à partir de Python 3.6 une DLL "maison" qui gère plusieurs autres threads?
Mes essais se sont soldés par un échec (là dans ma DLL j'essaye juste de créer 4 threads).
et j'obtiens ce genre d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 lib = ctypes.CDLL(r'C:\RSI\SourcesC\CIAO_win\DEV_CIAO\x64\Release\DLLfromPython.dll') lib.StartThread_ThreadManager.restype = ctypes.c_int lib.StartThread_ThreadManager.argtypes = [ctypes.c_int] retval = lib.StartThread_ThreadManager(4)
On voit que la DLL essaye de créer lesdits threads (là 2 sont apparemment créés en affichant "Thread N, param->counter = 0") mais après ça plante... Mon code C utilise CreateThread, et j'ai déclaré mes "HANDLES" de thread en variables globales (statiques ou non, ça donne le même résultat). De même le code du thread est déclaré comme "static DWORD".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Trying to create 4 threads! Traceback (most recent call last): File "C:\Python\Python36\lib\runpy.py", line 183, in _run_module_as_main Thread 1, param->counter = 0 mod_name, mod_spec, code = _get_module_details(mod_name, _Error) File "C:\Python\Python36\lib\runpy.py", line 109, in _get_module_details __import__(pkg_name) File "C:\RSI\SourcesC\CIAO_win\DEV_CIAO\DLLfromPython\python_dll.py", line 49, in <module> Thread 0, param->counter = 0 retval = lib.StartThread_ThreadManager(4) OSError: exception: access violation writing 0x0000000000000004
Merci d'avance. G13
Partager