3
liés à mon other questionPython ctypes AddressOf CFuncType
Comment puis-je obtenir l'adresse (pointeur de fonction acctual) à un objet CFuncType? addressof() ne signale pas l'adresse correcte.
Code C:
extern "C" _declspec(dllexport)
int addr(int (*func)())
{
int r = (int)func;
return r;
}
code Python:
def test():
return 42
t = CFUNCTYPE(c_int)
f = t(test)
print addressof(f)
print dll.addr(f)
Sortie:
7030864
3411932
essayant d'appeler * (7.030.864) de C provoque un accident, mais d'appeler * (3411932) fonctionne comme prévu. Quel est le problème avec addressof()?
'CFUNCTYPE' est déjà un pointeur, donc' AddressOf() 'retourne l'adresse où ce pointeur est stocké, ne traitera pas de la fonction. –