У меня есть функция с, которая выглядит так:
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.
Задача ещё не решена.
Других решений пока нет …