вызов функции из dll

 
0
 
Python
ava
jimbo | 28.06.2011, 21:59
допустим в длл есть функция

int func(CA *ptr);

я должен передать указать на объект-класс СА и получить инстанс. Как передать туда указатель на класс?

пробовал POINTER , buref и что-то еще, не получается никак((
ошибки типа:
wrong type
must be ctype type
invalid argument
can not convert 1 argument
Kommentare (1)
ava
afiskon | 29.06.2011, 06:32 #
Передать Питоновский объект в сишную функцию не удастся. Следует понимать, что внутреннее представление не то, что в разных языках - даже в разных компиляторах одного языка может отличаться.

Ваша библиотека может возвращать reinterpret_cast<int>(MyObject* ) и использовать этот int (по сути - handle) в экспортируемых функциях. Типа SomeMethod(int, arg1, arg2, ...). Но помните, что библиотека должна подчищать за объектом память. Но это решит не совсем вашу задачу.

Еще, как вариант, можно прибегнуть к сериализации.

später ergänzt:
PS. http://docs.python.org/library/ctypes.html...ntal-data-types
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  jimbo   afiskon
advanced
Absenden