Относится к моему другому вопросу
Как я могу получить адрес (действительный указатель на функцию) для объекта CFuncType? addressof () не сообщает правильный адрес.
код C:
extern "C" _declspec(dllexport)
int addr(int (*func)())
{
int r = (int)func;
return r;
}
Код Python:
def test():
return 42
t = CFUNCTYPE(c_int)
f = t(test)
print addressof(f)
print dll.addr(f)
Выход:
7030864
3411932
попытка вызова * (7030864) из C вызывает сбой, но вызов * (3411932) работает, как и ожидалось. Что не так с addressof ()?