Есть такая структура:
TRec1 = packed record Version:UInt32 end; Prec=^TRec1 function get_version(ARec: PRec): integer; begin Result := 1; FillChar(ARec, SizeOf(TRec1), 0); ARec^.Version := 2; Result := 0; end;
Есть функция get_version, которая принимает указатель на эту структуру и должна вернуть ее заполненной.
Код Python:
from ctypes import * class TRec1(Structure): _pack_ = 1 _fields_=[ ('Version',c_uint32) ] PRec1=TRec1() a=cdll.LoadLibrary('/home/Test_In_memmory_perfomance/lib.so') print a.get_version(PRec1)
В итоге ф-ция возвращает ошибку, что указатель на структуру равен Null.
При попытке вызова a.get_version('str') - ф-ция отрабатывает, но стринга мне ничего не заполнит.
Правильно ли я объявил структуру?