Como Incorporar Funções C/C++ em Lua

🔊 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.


Como Incorporar Funções C/C++ em Lua


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.


Assista ao vídeo


Códigos criados no vídeo

Clone o repositório com Git:

git clone https://github.com/terroo/cpp-bind-lua
cd cpp-bind-lua
g++ lua-bind.cpp -shared -fpic -llua -o terroo.so
lua main.lua

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.

g++ lua-bind.cpp -shared -fpic -L C:\caminho\para\lua.h -L C:\caminho\para\lauxlib.h -o terroo.dll

Para mais informações acesse os links:


cpp linguagemc lua


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!