如何在python中使用ctypes创建包含mpfr.h类型的相应结构?

时间:2017-11-15 15:26:45

标签: python c struct ctypes mpfr

我有一个C API,其函数适用于以下C结构:

const string inputFile = @"../NolekWPF.DataAccess/Nolek.edmx";

我正在为这个C API构建一个python包装器,所以我需要将这个结构定义为一个继承自' Structure'在ctypes中的类,然后给_field_赋值。但是mpq_ptr,mpfr_ptr是mpfr.h中的类型,并且没有相应的ctypes类型。有没有办法解决这个问题?

我想在python中获得的内容如下:

typedef struct s_t{
    mpq_ptr mpq;
    mpfr_ptr mpfr;
} s_t;

这样我就可以在python中创建这样的对象,并将它们传递给相应的C函数,这些函数将s_t作为输入参数。

1 个答案:

答案 0 :(得分:0)

我通过跟踪mpfr.h和gmp.h文件中的所有typedef并在python中创建所有必需的结构来解决这个问题:

class Mpz(Structure):
     # define struct manually

class Mpq(Structure):
     # define struct manually

class Mpfr(Structure):
     # define struct manually