Я абсолютный новичок в том, что касается использования SWIG и lua, и посредственный разработчик C ++, и я просто не понимаю, как я могу связывать классы C ++ с Lua.
Моя конечная цель - создать экземпляр класса, передать его моему скрипту lua, который определенным образом манипулирует этим объектом, затем я получаю этот объект в c ++ и делаю все, что я хочу с ним делать.
Итак ... Я скачал Lua и C ++, скомпилировал несколько примеров, я могу запустить скрипт lua в моей программе на c ++. Пока все хорошо.
Теперь я скачал SWIG. Я использую VC2010 на Windows 7. Из того, что я понимаю, я предполагаю создать файл интерфейса. Итак, я создал один, example.i:
%module creature
class Creature
{
public:
Creature(void);
Creature(int id);
~Creature(void);
(...) the rest of my class here
(Просто добавил% существо модуля в мой Creature.h и сохранил его как creature.i). Я запустил SWIG, используя
swig -c++ -lua creature.i
и получил мой файл creature.cxx.
Теперь, я, наверное, сейчас смущаюсь, но ... я не знаю, что делать дальше. Я предполагаю, чтобы построить выходной файл как-то? Как я могу использовать это сейчас? Я прочитал здесь http://www.swig.org/Doc1.3/Lua.html, что мне нужно связать сгенерированный файл (* .cxx) с остальной частью моего кода (поэтому я делаю это, просто включив файл в мой проект и добавив строку #include " Creature.h "). Но когда я компилирую, я получаю ошибки типа
error C2065: 'LUA_GLOBALSINDEX' : undeclared identifier
error C2036: 'const luaL_reg *' : unknown size
Я также попытался скомпилировать его с помощью MinGW, но у меня возникла та же проблема. Было бы замечательно, если бы кто-то мог показать мне пример или пошаговое руководство о том, как я могу использовать эти инструменты вместе, так как мне трудно понять всю идею. Это определенно связано с моим непониманием основ того, как это следует использовать, поэтому, пожалуйста, будьте осторожны с нубом.
Любая помощь будет высоко ценится.