python如何传递给c++一个结构体指针?前提是swig封装的C++函数,请写出代 100
python如何传递给c++一个结构体指针?前提是swig封装的C++函数,请写出代码举例说明目前已到问题是这样的:我用swig封装了C++函数供python来调用C++...
python如何传递给c++一个结构体指针?前提是swig封装的C++函数,请写出代码举例说明
目前已到问题是这样的:我用swig封装了C++函数供python来调用 C++函数需要传入 结构体指针 引用等参数 可是我不知道python怎么传递这种类型的参数 麻烦大神帮忙解答 展开
目前已到问题是这样的:我用swig封装了C++函数供python来调用 C++函数需要传入 结构体指针 引用等参数 可是我不知道python怎么传递这种类型的参数 麻烦大神帮忙解答 展开
展开全部
在封装的代码间传递指针你要确保他们运行在相同的地址空间里,还要保证指针指向的内存的生存期是安全的,否则这种思路就是错误的。实现方法举例如下:
1、定义了C 结构体和函数如下
typedef struct NameAge
{
char name[20];
int age;
}NameAge , *NameAgePointer;
void test(NameAgePointer p) // 接收结构体指针
{
// do something with p...
}
2、python定义结构体如下
#python中结构体定义
class PyStruct():
def __init__(self, name, age):
self.name = name
self.age = age
fred = PyStruct("fred", 5)
3、假设把第1步里的test封装成example模块,python导入example(既然你都会swig了,这个过程就不啰嗦了)
>>>import example
>>>example.test(pointer(fred))
以上是基本思路,因为搭建开发环境和过程比较繁杂,没有验证过,但是应该没有大问题
1、定义了C 结构体和函数如下
typedef struct NameAge
{
char name[20];
int age;
}NameAge , *NameAgePointer;
void test(NameAgePointer p) // 接收结构体指针
{
// do something with p...
}
2、python定义结构体如下
#python中结构体定义
class PyStruct():
def __init__(self, name, age):
self.name = name
self.age = age
fred = PyStruct("fred", 5)
3、假设把第1步里的test封装成example模块,python导入example(既然你都会swig了,这个过程就不啰嗦了)
>>>import example
>>>example.test(pointer(fred))
以上是基本思路,因为搭建开发环境和过程比较繁杂,没有验证过,但是应该没有大问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询