lua 怎么被c++调用的,或者怎么调用c++的?
lua怎么被c++调用的,或者怎么调用c++的?希望说的详细一些。写c++需要导入什么头文件吗??...
lua 怎么被c++调用的,或者怎么调用c++的? 希望说的详细一些。写c++ 需要导入什么头文件吗??
展开
4个回答
展开全部
使用tolua++即可。
1、tolua++简介
tolua++是一种第三方的软件包,可以为Lua提供面向对象的特性,这样我们就可以使用Lua来编写使用C++语言库的脚本文件.
2、tolua++的编译.
tolua++的主页在http://www.codenix.com/~tolua/,目前的最新版本是1.0.7,为了使用tolua++,我们需要三个文件:
1.bin/tolua++[.exe] - tolua++的可执行程序
2.include/tolua++.h - tolua++的头文件
3.lib/libtolua++.a or lib/tolua++.lib - tolua++的静态库(当然有的时候也需要生成动态库,可以参考我下面给出的文章的网址,我们先从最简单的入手)
使用tolua++的时候,都需要使用tolua++的可执行程序自动生成一个.pkg文件生成对应的.c(C语言)或者.cpp文件(C++语言),然后把这个文件和对应的C/C++文件一起编译生成可执行程序,这样就可以对对应的Lua脚本进行读取操作.
1、tolua++简介
tolua++是一种第三方的软件包,可以为Lua提供面向对象的特性,这样我们就可以使用Lua来编写使用C++语言库的脚本文件.
2、tolua++的编译.
tolua++的主页在http://www.codenix.com/~tolua/,目前的最新版本是1.0.7,为了使用tolua++,我们需要三个文件:
1.bin/tolua++[.exe] - tolua++的可执行程序
2.include/tolua++.h - tolua++的头文件
3.lib/libtolua++.a or lib/tolua++.lib - tolua++的静态库(当然有的时候也需要生成动态库,可以参考我下面给出的文章的网址,我们先从最简单的入手)
使用tolua++的时候,都需要使用tolua++的可执行程序自动生成一个.pkg文件生成对应的.c(C语言)或者.cpp文件(C++语言),然后把这个文件和对应的C/C++文件一起编译生成可执行程序,这样就可以对对应的Lua脚本进行读取操作.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问问老师把
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以参考lua++,http://www.tecgraf.puc-rio.br/~celes/lua++/html/node1.html
大概就是下面的用法:
As an example of its use, consider the code bellow.
Lua file
-- Test driver for lua++
-- Waldemar Celes
-- Feb 1997
name = "lua";
version = 2.5;
-- This function will be called from C++
function display (name, version)
print("C API:"..name.." "..version)
local info = { name = name, version = version} -- create a table
change (info) -- call C++, passing the table
print("and now also C++: "..info.name.." "..info.version)
end
C++ file
// Test driver for lua++
// Waldemar Celes
// Feb 1997
#include "lua++.h"
#include
LuaReference ref;
// This function will be called from Lua
// Receives a table from Lua and change its contents.
static void change (void)
{
LuaObject table = Lua::getparam(1); // get Lua object parameter
if (table.isTable())
{
table["name"] = "lua++"; // change table content in Lua
table["version"] = 1;
}
ref.ref(table); // associate a reference to this object
}
int main (void)
{
// Register function
LuaValue(change).store("change"); // or "Lua::record("change",change);"
// Execute file
Lua::dofile("test.lua");
// Get Lua global variables
LuaObject name = Lua::getglobal("name");
LuaObject version = Lua::getglobal("version");
LuaObject display = Lua::getglobal("display");
// Call Lua function
display(name,version);
// Call Lua function with C types
LuaObject print = Lua::getglobal("print");
print("It works!");
// Access previously stored reference and call Lua
print(ref["name"]);
return 0;
}
Output
C API:lua 2.5
and now also C++: lua++ 1
It works!
lua++
大概就是下面的用法:
As an example of its use, consider the code bellow.
Lua file
-- Test driver for lua++
-- Waldemar Celes
-- Feb 1997
name = "lua";
version = 2.5;
-- This function will be called from C++
function display (name, version)
print("C API:"..name.." "..version)
local info = { name = name, version = version} -- create a table
change (info) -- call C++, passing the table
print("and now also C++: "..info.name.." "..info.version)
end
C++ file
// Test driver for lua++
// Waldemar Celes
// Feb 1997
#include "lua++.h"
#include
LuaReference ref;
// This function will be called from Lua
// Receives a table from Lua and change its contents.
static void change (void)
{
LuaObject table = Lua::getparam(1); // get Lua object parameter
if (table.isTable())
{
table["name"] = "lua++"; // change table content in Lua
table["version"] = 1;
}
ref.ref(table); // associate a reference to this object
}
int main (void)
{
// Register function
LuaValue(change).store("change"); // or "Lua::record("change",change);"
// Execute file
Lua::dofile("test.lua");
// Get Lua global variables
LuaObject name = Lua::getglobal("name");
LuaObject version = Lua::getglobal("version");
LuaObject display = Lua::getglobal("display");
// Call Lua function
display(name,version);
// Call Lua function with C types
LuaObject print = Lua::getglobal("print");
print("It works!");
// Access previously stored reference and call Lua
print(ref["name"]);
return 0;
}
Output
C API:lua 2.5
and now also C++: lua++ 1
It works!
lua++
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询