J'ai cherché des réponses à cette question, mais je continue à vide. J'ai réussi à obtenir un couple de la travail de DLL, mais celui-ci me donne quelques problèmes:OSError: violation d'accès de lecture 0xXXXXXXXXXXX erreur lors de l'appel d'une DLL en utilisant ctypes
import ctypes
from ctypes import *
import my_module
dll = CDLL('C:\\Path_to_dll')
MF = (b'C:\\Path_to_file')
cela ne fonctionne pas:
PN = (b'parameter_name')
beginTime = ctypes.c_double(-value)
endTime = ctypes.c_double(+value)
DT_RETURNGMT = 0x0100
DT_FLOAT = 0x0001
convertType = (DT_RETURN|DT_BOOL)
Null = 0
dll.readPam.argtypes = POINTER(File), c_char_p,
c_double, c_double, c_double, POINTER(TTag), c_ushort,
dll.readPam.restype = POINTER(Pam)
C'est là l'erreur apparaît:
g = dll.readPam(f, PN, beginTime, endTime, Null, Null, convertType)
OSError: exception: access violation reading 0x0000000000000000
Ma question est la suivante: Quelle est l'erreur qui indique qu'elle ne peut pas lire et comment puis-je la réparer? Ce que le dll doit faire est d'imprimer sur des valeurs de données lorsque je tape:
print(g)
print(g[0].tS[0].data)
dll.freePam(g)
Vous devez montrer un [mcve] qui peut reproduire le problème. –
Juste à partir de la mise en évidence de la syntaxe seule, on peut voir qu'il y a des erreurs de syntaxe dans votre code ....! –
@RossRidge J'ai ajouté plus d'informations sur mon code –