Я пытаюсь обернуть функцию C ++, которая может получить таблицу строк Lua и использовать ее как массив строк в функции C ++.
Я мог бы успешно сделать это, используя тип float вместо строки.
Вот моя функция.
static void readTable(float values[], int len) {
for (int i=0; i<len; ++i)
printf("VALUE : %g", values[i]);
}
А вот часть типографских карт из файла интерфейса SWIG (.i)
// using typemaps
%include <typemaps.i>
%apply (float INPUT[], int) {(float values[], int len)};
Это прекрасно работает, когда я вызываю эту функцию в Lua.
Однако, если я изменил тип на std::string
вместо float
и передал в таблицу таблицу строк, я получаю следующую ошибку в Lua.
Error in readTable expected 2..2 args, got 1
Iне знаю, что это значит и как это исправить.Может быть, мне нужно добавить что-то еще в файл интерфейса SWIG (.i)?
Буду признателен за любую помощь.Спасибо!