1
我使用SWIG封裝了C共享庫。具有指針的SWIG函數結構
我有問題在python中用struct指針調用C函數。
我的文件:
ST_Param.h:
typedef struct {
unsigned int* device_Address;
....
....
unsigned int lock;
}ST_param_ST;
unsigned char ST_Param_Initialize(ST_param_ST * ST_param, unsigned int device_Address);
ST_Param.c
......... Rest of file.............
unsigned char ST_Param_Initialize(ST_param_ST * ST_param, unsigned int device_Address){
if(ST_param == NULL){
.......... rest of funtion .......................
return 0;
}
在ST_Param_Initialize我確認指針是否存在,如果不相信
ST_Param.i:
/* File : ST_Param.i */
%module ST_Param
%{
#define SWIG_FILE_WITH_INIT
#include "ST_Param.h"
%}
%include "typemaps.i"
%include "ST_Param.h"
我編譯和生成的.so文件不錯。 在Python中我可以導入庫,但我不能叫ST_Param_Initialize因爲需要一個ST_Param_ST *參數:
我怎樣才能做到這一點?
注意:我不能修改.c和.h文件。只有一個.i文件。
在谷歌搜索,但我不知道該怎麼辦呢
感謝 問候。