Форум сайта python.su
0
Здравствуйте!
У меня есть указатели на сишные функции, я могу передавать их в другие сишные функции, но, к сожалению, не нашёл, как их вызывать непосредственно из питона. Можно ли это сделать и ежели да, то как? Интересует также вопрос, есть ли какие-то подводные камни, ежели функция суть метод класса.
Заранее благодарен.
Офлайн
253
swig вообще все незнакомое в указатели заворачивает и это тоже завернет.
Если функция суть метод класса - то это вовсе не указатель на функцию в общем случае.
А вызвать просто - передаете указатель на это нечто в сишный код и он его нормально вызовет.
ps.
если используете несколько динамических библиотек с разными опциями сборки, то в этом месте легко может навернуться именно потому что это не просто указатель.
Офлайн
0
doza_andНу так я могу, а мне бы хотелось напрямую.
А вызвать просто - передаете указатель на это нечто в сишный код и он его нормально вызовет.
doza_andНу скажем так, я хочу сделать нечто вроде плагинной системы. Я хелло ворлд написал, из С++ плагины работают, и даже из питона таким образом работают, теперь я хочу попробовать плагины тоже в свиг заворачивать и через питон передавать “основной” сишной библиотеке. Хотя, наверное, можно обойтись без этого (равно как и без вызова указателей), но с этим было бы веселее. Скажем, у плагина помимо стандартного интерфейса могут быть ещё какие-то потроха, и так к ним можно было бы обращаться из питона.
если используете несколько динамических библиотек с разными опциями сборки, то в этом месте легко может навернуться именно потому что это не просто указатель.
Офлайн