lua 怎么被c++调用的,或者怎么调用c++的?

lua怎么被c++调用的,或者怎么调用c++的?希望说的详细一些。写c++需要导入什么头文件吗??... lua 怎么被c++调用的,或者怎么调用c++的? 希望说的详细一些。写c++ 需要导入什么头文件吗?? 展开
 我来答
kepi4285
2011-09-26 · TA获得超过313个赞
知道答主
回答量:438
采纳率:0%
帮助的人:278万
展开全部
你就也定义一个形参中的结构体指针接收传过来的结构体指针就OK啦 形参中的甚至当一个C函数调用Lua代码(Lua代码调用同一个C函数或者其他的C函数),
tattackor
2015-10-29 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:863万
展开全部
使用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脚本进行读取操作.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
暴嘎驹6325
2011-09-26 · TA获得超过115个赞
知道答主
回答量:110
采纳率:0%
帮助的人:38.1万
展开全部
问问老师把
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
matlab2000
2011-09-28 · TA获得超过2321个赞
知道大有可为答主
回答量:1678
采纳率:100%
帮助的人:1035万
展开全部
可以参考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++
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式