Swig和PHP:C函数期望枚举作为参数

时间:2015-10-22 14:19:07

标签: php c enums swig

我有一个看起来像这样的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中使用的新函数。

0 个答案:

没有答案