Привет, у меня проблема с CTYPES в python. У меня есть готовая библиотека DLL с некоторым обратным вызовом. На swift все работает, но у меня есть некоторые проблемы в python.
Python:
def set_up_callback(self):
self.lib.set_callback(self.callback1)
@CFUNCTYPE(None, c_float, c_float, c_float, c_uint64)
def callback1( a, b, c, time):
print(a, b, c, time)
c ++ объявление обратного вызова
typedef void(*callbackType)(float, float, float, uint64_t, void*);
callbackType callback;
void* context;
c ++ init
void setCallback(callbackType callback, void* context) {
this->context = context;
this->callback = callback;
}
c ++ индукция
callback(1.5f, 2.4f, 1.3f, timestamp, context);
shared.h
extern "C" void SHARED_EXPORT set_callback(callbackType callback, void* context);
, и это хорошо работает, но я хотел бы иметь self
В функции обратного вызова, поэтому я пытаюсь это
def set_up_callback(self):
callback_type = CFUNCTYPE(None, c_float, c_float, c_float, c_uint64)
callback = callback_type(self.callback1)
self.lib.set_callback(callback)
def callback1(self, a, b, c, time):
print(a, b, c, time)
и с этой попыткой у меня появляется ошибка Segmentation fault: 11
Заранее спасибо за помощь