Найти - Пользователи
Полная версия: C-структура с методами
Начало » Python для экспертов » C-структура с методами
1 2
karkadil
Привет!

Подскажите, а можно ли из Python работать с си-структурами, которые содержат методы? А именно вызывать эти самые методы.

Есть у меня в си такая структура
struct Plugin
{
virtual PStatus Supports( const ioctl::Usb& Device ) = 0;
virtual PStatus FindInterface( const ioctl::Usb& Device, icu::UnicodeString& InterfaceName ) = 0;
};

Как с ней можно работать из Python? Куда копать? Поиском что-то ничего не находится, уже склоняюсь к мысли, что это невозможно вообще.

Спасибо!
py.user.next
karkadil
можно ли из Python работать с си-структурами, которые содержат методы?
karkadil
Есть у меня в си такая структура

в C у структур нет методов, C и C++ - разные языки
karkadil
Да, тут я слажал, не знаком с этой разницей. Тем не менее, вопрос остается открытым: можно ли работать с такой структурой?
Shaman
karkadil
Как с ней можно работать из Python? Куда копать? Поиском что-то ничего не находится, уже склоняюсь к мысли, что это невозможно вообще.
С этой? Точно так же как и из сей.
Alen
http://docs.python.org/2/library/ctypes
karkadil
Ссылка на документацию - это очень хорошо, я ознакомился с ней прежде чем задавать вопрос
Там рассматриваются только обычные переменные (в том числе поля структуры типа c_int, c_char и т.п.). У меня же в качестве поля структуры ФУНКЦИЯ (метод), а не обычная переменная.

Как мне вообще описать в python структуру, указав, что в качестве одного из полей выступает фнукция, а не просто переменная?
Как потом вызвать этот метод?

Может кто-то привести элементарный пример?
Shaman
Там пустая структура без функций и чего-либо вообще.
karkadil
Shaman
Там пустая структура без функций и чего-либо вообще.

Где “там”? В моем примере приведенном структура с двумя методами Supports и FindInterface.

Как мне описать такую структуру в питоне и как потом у этой полученной структуры вызывать методы Supports и FindInterface?

s0rg
karkadil
Где “там”? В моем примере приведенном структура с двумя методами Supports и FindInterface.
В вашем примере у вас структура с двумя _указателями_, работать с ними также как и с любыми другими
указателями на функции
Shaman
Указатель в примере если и присутствует, то всего один.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB