Tutorial Binder Lua

Transcrição

Tutorial Binder Lua
31/8/2010
tuto:constr_binder_lua - Visual Virtual
Construção de binder para Lua
Introdução
Tutorial para elaboração de um binder para lua.
Pré-requisitos
Sistema Operacional XP
Microsoft Visual C++ Studio 2005 Express
Versão 5.1.3 de lua
Versão 1.0.9.2 de ToLua++
Procedimentos com o Microsoft Visual C++ Studio 2005 Express
1. Crie um projeto de nome exemplo no Visual C++ do tipo Class Libray
2. Remova todos os arquivos criados com o projeto
3. Dentro da pasta do projeto exemplo crie as seguintes pastas: lib, bin, include, src.
4. Na pasta include coloque os seguintes arquivos.
1. De Lua:
lauxlib.h
lua.hpp
lua.h
lualib.h
luaconfig.h
http://192.168.0.2/wiki/doku.php?id=…
1/4
31/8/2010
tuto:constr_binder_lua - Visual Virtual
2. De ToLua++:
tolua++.h
5. Altere no arquivo “tolua++.h” o trecho:
#ifndef TOLUA_API
#define TOLUA_API extern
#endif
por
#ifndef TOLUA_API
#define TOLUA_API extern
#define TOLUA_API1 extern "C" _declspec(dllexport)
#endif
6. Na pasta lib coloque os seguintes arquivos de Lua:
lua5.1.lib
7. Na pasta bin coloque os seguintes arquivos de Lua:
lua5.1.dll
8. Adicione três arquivos ao projeto exemplo na pasta src:
binder.h
binder.cpp
luabinder.cpp
9. No arquivo “binder.h” escreva o seguinte código:
int teste();
10. No arquivo “binder.cpp” escreva o seguinte código:
#include "binder.h"
int teste(){return 5;}
11. Execute tolua++ sobre o arquivo binder.h(veja o item Procedimentos com ToLua++).
12. Coloque o resultado no arquivo luabinder.cpp.
13. Acrescente a seguinte declaração ao arquivo “luabinder.cpp”:
#include "binder.h"
14. Adicione os projetos tolua++ e tolualib a sua solução.
15. Configure os projetos como Release.
http://192.168.0.2/wiki/doku.php?id=…
2/4
31/8/2010
tuto:constr_binder_lua - Visual Virtual
16. No projeto exemplo, Properties, C/C++, General, Additional Include Directories, acrescente o valor include.
17. no projeto exemplo, Properties, C/C++, Precompiled Headers, Create/Use Precompiled Headers,
acrescente o valor Not Using Precompiled Headers.
18. No projeto exemplo, Properties, Linker, General, Additional Libray Directories, acrescente o valor
../exemplo/lib.
19. No projeto exemplo, ProperTies,Linker, Input, Addtional Dependencies, acrescente o valor “lua5.1.lib”.
Clique em ok.
20. Torne o projeto exemplo depende de tolualib.
21. Compile a solução.
Procedimentos com o ToLua++
1. Na pasta include do projeto tolua++ coloque os seguintes arquivos.
1. De Lua:
lauxlib.h
lua.hpp
lua.h
lualib.h
luaconfig.h
2. Na pasta lib do projeto tolua++ coloque os seguintes arquivos:
1. De Lua:
lua5.1.lib
3. Compile o projeto tolua++.
4. Crie um arquivo binder.pkg(arquivos que contém apenas a interface) e copie o conteúdo de binder.h para
ele.
5. Coloque o aplicativo tolua++ numa pasta junto com o arquivo binder.pkg.
6. Execute no prompt de comando o seguinte comando:
>tolua++.exe -n LuaBinder -o luabinder.cpp binder.pkg
7. Modifique esse trecho:
#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501
TOLUA_API int luaopen_LuaBinder (lua_State* tolua_S){return tolua_LuaBinder_open(tolua_S);
};
#endif
por
http://192.168.0.2/wiki/doku.php?id=…
3/4
31/8/2010
tuto:constr_binder_lua - Visual Virtual
#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501
TOLUA_API1 int luaopen_LuaBinder (lua_State* tolua_S){return tolua_LuaBinder_open(tolua_S);
};
#endif
Procedimentos com o Lua:
1. Crie um arquivo lua chamado exemplo.
2. Acrescente as seguintes declarações:
EXEMPLO = "exemplo.dll"
--inicia binder.h
init_LuaBinder = assert(pachage.loadlib(EXEMPLO,"luaopen_LuaBinder"));
init_LuaBinder();
print(teste());
3. Coloque os arquivos abaixo na mesma pasta
lua5.1.exe
lua5.1.dll
exemplo.dll
exemplo.lua
4. Execute o aplicativo lua5.1.exe.
5. Digite: require 'exemplo'.
http://192.168.0.2/wiki/doku.php?id=…
4/4

Documentos relacionados