好的 现在讲讲Lua中调用C函数
怎么调用?
extern "C"
{
#include <lua.h>
#include <lauxlib.h>
#pragma comment(lib,"lua51.lib")
static int l_test(lua_State* l)
{
double d=lua_tonumber(l,1);
lua_pushnumber(l,d*d);
return 1;
}
__declspec(dllexport) int luaopen_test(lua_State* l)
{
static const luaL_reg maps[]={
{"test",l_test},
{NULL,NULL}
};
luaL_register(l,"mytest",maps);
return 1;
}
}
参数在lua中给出,而在c函数中,通过取栈操作得到参数,c经过处理,把结果压入栈中,ok
要点有二:
1. __declspec(dllexport) 要有
2. luaopen_模块名,假设生成的dll叫test.dll,那么函数名就叫luaopen_test
好 就是这样 谢谢
posted on 2011-04-27 15:48
野猪红 阅读(622)
评论(0) 编辑 收藏 引用 所属分类:
C/C++ STL Python Lua