понедельник, 13 июня 2011 г.

Hello World: Lua и C++

Lua - простой и  удобный интерпретируемый язык программирования, позволяющий легко добавить скрипты в вашу программу.
Скачать и установить lua можно отсюда. Пользователи ubuntu/debian могут установить из репозитория:
sudo aptitude install lua5.1 liblua5.1-dev
Теперь создайте новый проект на c++ в своей IDE, затем создайте новый файл: script.lua
Для использования в c++ скриптов на lua необходимо подключить файл lua.hpp:
#include "lua.hpp" // или <lua.hpp>, "lua5.1/lua.hpp", в зависимости от того, как у вас установлен lua
Тем, кто пишет на c необходимо вместо #include "lua.hpp" написать:
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
Также вам необходимо подключить библиотеку lua (liblua5.1.so в linux или lua51.lib в Windows).
Теперь инициализируем lua:
lua_State *l = lua_open();
luaL_openlibs(l);
Далее создаем lua-скрипт: создаем новый файл script.lua и пишем в нем print "Hello World!!!"
Для испольнения этого скрипта в программе на c/c++ существует специальная функция:
luaL_dofile(указатель на экземпляр lua, имя или путь к файлу со скриптом);
После работы с lua надо не забыть его закрыть:
lua_close(l);
Теперь, если вы все сделали правильно, после запуска программы вы увидети строчку "Hello World!!!"
Программа польностью:
main.cpp:
#include &lt;iostream&gt;
#include "lua5.1/lua.hpp"
using namespace std;
 
int main()
{
    lua_State *l = lua_open();
    luaL_openlibs(l);
    luaL_dofile(l,"script.lua");
 
    lua_close(l);
    return 0;
}
script.lua:
print "Hello World";

2 комментария:

  1. странно ... у меня выдаёт :
    error C3861: lua_open: идентификатор не найден

    я новичёк в c++ подскажите как это исправить

    ОтветитьУдалить
  2. lua_State *l;
    lua_open(l);
    кажись так

    ОтветитьУдалить