新手请问 怎么在LUA脚本中调用C++程序中的函数
lua吧
全部回复
仅看楼主
level 1
还有怎么在Lua中调用c++中的函数 谢谢
#include "stdafx.h"
#include "lua.hpp"
#pragma comment(lib,"Lua.lib")
int _tmain(int argc, _TCHAR* argv[])
{
lua_State *l = luaL_newstate();
luaL_openlibs(l);
luaL_dofile(l, "main.lua");
lua_close(l);
return 0;
}
上面是我在网上找的测试源码 搞了好久才搞清楚是头文件引用的问题
但我现在想在里面加入脚本和程序函数之间互相调用的功能
例如在C++代码中添加一个函数
int Add(int a,int b)
{
return a+b
}
然后在main.lua中调用Add函数 应该怎么做
希望大神给个例子
2015年10月22日 10点10分 1
level 11
步骤1:
在c中先注册函数lua_register(L, "add", add);
步骤2
main.lua
就直接调用
print(add(1, 2))
输出:3
2015年10月23日 17点10分 2
level 11
别被楼上骗了[黑线],注册是没错,可是你这个Add函数明显不是lua/c交互函数,lua与c的参数交互必须使用lua的栈来完成
2015年10月23日 23点10分 3
level 11
int add(lua_State l){
int a,b;
a=(int)lua_tonumber(l,-2);
b=(int)lua_tonumber(l-1);
lua_pushnumber(l,(double)(a+b));return 1;
}
2015年10月23日 23点10分 4
1