Swig и PHP: функция 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: введите ошибку в аргументе 1 GetCurrentMode. Ожидаемый SWIGTYPE_p__RADIOMODES

Как мне получить swig и php для установки $ rcs на правильный enum?
Или как мне получить swig для преобразования enum RADIOMODE в int и обратно?

РЕШИТЬ:
Проблема была в том, что мне нужно было добавить функцию указателя после того, как мой .h файл был определен.

%pointer_functions( RADIOMODES, RADIOMODESp )

Это добавило несколько новых функций, которые я могу использовать в PHP.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]