好的 现在讲讲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

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理