LINUX.ORG.RU

История изменений

Исправление ados, (текущая версия) :

Слушай, я не понимаю документацию.

Please note that this interface is only for those that must know about the values contained in a relevant struct. If the library you are interfacing returns an opaque pointer that needs only be passed to other C library functions, by all means just use :pointer or a type-safe definition munged together with defctype and type translation. To pass or return a structure by value to a function, load the cffi-libffi system and specify the structure as (:struct structure-name). To pass or return the pointer, you can use either :pointer or (:pointer (:struct structure-name)).

Допустим такая ситуация - в библиотеке, которую мне надо использовать через cffi, типа ООП и инкапсуляция - структуры в доках не описаны и они могут от версии к версии меняться, но в доках хорошо описан интерфейс работы с этими структурами, который если и будет меняться то незначительно и которого вполне достаточно для использования библиотеки. Я хочу попробовать работать со структурами не описывая их передавая функциям интерфейса указатели. Я правильно понимаю что можно не писать на C обёртки функций чтобы те работали с указателями?

Вот есть в библиотеке fftw такой тип как fftw_plan и похоже это банально указатель на структуру. Это такая договорённость писать библиотеки или мне просто повезло?

Исправление ados, :

Слушай, я не понимаю документацию.

Please note that this interface is only for those that must know about the values contained in a relevant struct. If the library you are interfacing returns an opaque pointer that needs only be passed to other C library functions, by all means just use :pointer or a type-safe definition munged together with defctype and type translation. To pass or return a structure by value to a function, load the cffi-libffi system and specify the structure as (:struct structure-name). To pass or return the pointer, you can use either :pointer or (:pointer (:struct structure-name)).

Допустим такая ситуация - в библиотеке, которую мне надо использовать через cffi, типа ООП и инкапсуляция структуры, в доках не описаны они могут от версии к версии меняться, но в доках хорошо описан интерфейс работы с этими структурами, который если и будет меняться то незначительно и которого вполне достаточно. Я хочу попробовать работать со структурами не описывая их передавая функциям интерфейса указатели. Я правильно понимаю что можно не писать на C обёртки функций чтобы те работали с указателями?

Вот есть в библиотеке fftw такой тип как fftw_plan и похоже это банально указатель на структуру. Это такая договорённость писать библиотеки или мне просто повезло?

Исходная версия ados, :

Слушай, я не понимаю документацию.

Please note that this interface is only for those that must know about the values contained in a relevant struct. If the library you are interfacing returns an opaque pointer that needs only be passed to other C library functions, by all means just use :pointer or a type-safe definition munged together with defctype and type translation. To pass or return a structure by value to a function, load the cffi-libffi system and specify the structure as (:struct structure-name). To pass or return the pointer, you can use either :pointer or (:pointer (:struct structure-name)).

Допустим такая ситуация - в библиотеке, которую мне надо использовать через cffi, типа ООП и инкапсуляция структуры, в доках не описаны они могут от версии к версии меняться, но в доках хорошо описан интерфейс работы с этими структурами, который если и будет меняться то незначительно и которого вполне достаточно. Я хочу попробовать работать со структурами не описывая их передавая функциям интерфейса указатели. Я правильно понимаю что можно не писать на C обёртки функций чтобы те работали с указателями?

Вот есть в библиотеке fftw такой тип как fftw_plan и похоже это банально указатель. Это такая договорённость писать библиотеки или мне просто повезло?