Atualmente, é muito comum desenvolvermos partes de uma aplicação utilizando uma linguagem de script e outra parte utilizando uma linguagem de mais baixo nível que possua um melhor desempenho.
Em 90% dos casos, a linguagem de mais baixo nível escolhida é C, de modo que várias linguagens de script como Python, Perl e Ruby possuem alguma forma de se comunicar com C.
Lua não é diferente e disponibiliza uma API para que o código Lua possa se comunicar com código C e vice-versa.
Lua é uma linguagem extensível pois podemos definir funções em C e usá-las em programas Lua. Ao mesmo tempo, Lua também é uma linguagem de extensão, uma vez que é possível embutir Lua em uma aplicação C. O modelo para se comunicar com código C oferecido por Lua é baseado em uma pilha virtual, onde tanto o código C como o código Lua podem colocar e retirar valores na pilha.
As funções que manipulam a pilha virtual possuem como parâmetro uma estrutura lua State, que armazena informações sobre o estado do programa Lua. Nenhuma informação sobre o estado é armazenada em variáveis globais, de modo que podemos ter vários lua State independentes.
Nesse vídeo veremos como é muito fácil de implementarmos a API do Lua para C e criarmos nossas funções em C e C++ para usar na linguagem de programação Lua.
Clone o repositório com Git:
Se estiver no Windows veja nesse artigo: Como instalar Lua no Windows 10 e também esse: Como Instalar GCC/G++ MinGW no Windows.
A extensão das bibliotecas compartilhadas è .dll
, logo o comando para compilar seria mais ou menos:
Informe o caminho onde está instalado os arquivo da API do Lua.
Para mais informações acesse os links: