Lua调用C函数

Lua调用C函数,第1张

概述根据《programming in lua》第26章的内容,我做出来的如下:     1. 首先,我的Lua目录为: D:/lua5.1/ 环境为 windows ; VC++express edition 2008 ; Lua5.1.4 ; Notepad++   当然,你需要在VC++2008中配置好lua:       这里先不多做解释,假设你已经配置好了。   2.   找到 D:/lua 根据《programming in lua》第26章的内容,我做出来的如下:     1. 首先,我的Lua目录为: D:/lua5.1/ 环境为 windows ; VC++express edition 2008 ; Lua5.1.4 ; Notepad++   当然,你需要在VC++2008中配置好lua:       这里先不多做解释,假设你已经配置好了。   2.   找到 D:/lua5.1/src       目录下的 lua.c 文件,       将这段代码放到 lua.c 文件中,这就是我们自己定义的C函数:       static int linjunjIE (lua_State *L) {
 printf("hello junjIE /n");
  return 1;  /* number of results */
}
  这里,我们只是简单打印一行文字,没有参数,没有返回值。   然后,我们还需要在 lua.c 中的 main 函数中添加我们的自定义函数(也可以称之为“注册”),添加完之后,类似下面这样(红色部分为我们添加部分):       int main (int argc,char **argv) {
  int status;
  struct Smain s;
  lua_State *L = lua_open();  /* create state */ 
 
 lua_pushcfunction(L,linjunjIE);
 lua_setglobal(L,"linjunjIE");

 
  if (L == NulL) {
    l_message(argv[0],"cannot create state: not enough memory");
    return EXIT_FAILURE;
  }
  s.argc = argc;
  s.argv = argv;
  status = lua_cpcall(L,&pmain,&s);
  report(L,status);
  lua_close(L);
  return (status || s.status) ? EXIT_FAILURE : EXIT_SUCCESS;
}   3. 现在代码修改完毕,我们需要重新编译我们的 lua ,方法为 进入VS2008的命令提示,然后执行如下 *** 作: (到lua5.1目录下,执行etc目录下的luavs.bat批处理,他将替我们编译lua) D:/lua5.1>d:/lua5.1/etc/luavs.bat       4. 假设第3部没有错误,顺利编译完成之后,这时我们的自定义函数就已经被注册到我们机器中的lua中了,试一下。   在VC++2008中,将lua添加为外部工具。       然后新建一个 win32控制台应用程序工程,之后,建立一个文本文件,将   linjunjIE()   拷贝进去,然后更改文件名为 linjunjIE.lua(这里只要是lua后缀即可),如下所示:       然后选择VC++2008中的 工具->lua,这时IDE底部的 输出窗口会打印出如下所示:       这代表我们成功将自定义C函数加入到了我们的lua中

。 (图片贴不上,只能打包放在附件里了) 总结

以上是内存溢出为你收集整理的Lua调用C函数全部内容,希望文章能够帮你解决Lua调用C函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1268258.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存