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函数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)