我有一个看起来像这样的c函数:
GetCurrentMode(RADIOMODES *radioModes);
我的.h文件和swigs .i文件都包含这些枚举定义:
typedef enum _RADIOMODES {
RADIOMODES_NONE = 0,
RADIOMODES_ONE = 1,
RADIOMODES_TWO = 2,
} RADIOMODES;
GetCurrentMode应将$ rcs设置为正确的模式。 但是当我跑步时:
$rcs = RADIOMODES_NONE;
GetCurrentMode($rcs);
我收到这些错误: PHP致命错误:在GetCurrentMode的参数1中键入错误。预计SWIGTYPE_p__RADIOMODES
如何让swig和php将$ rcs设置为正确的枚举? 或者我如何让swig将枚举RADIOMODE转换为int并返回?
解决: 问题是我需要在定义.h文件后添加指针函数。
%pointer_functions( RADIOMODES, RADIOMODESp )
这增加了几个我可以在PHP中使用的新函数。