Lua教程(十七):C API简介
Lua是一种嵌入式脚本语言,即Lua不是可以单独运行的程序,在实际应用中,主要存在两种应用形式。第一种形式是,C/C++作为主程序,调用Lua代码,此时可以将Lua看做“可扩展的语言”,我们将这种应用称为“应用程序代码”。第二种形式是Lua具有控制权,而C/C++代码则作为Lua的“库代码”。在这两种形式中,都是通过Lua提供的CAPI完成两种语言之间的通信的。
1.基础知识:
CAPI是一组能使C/C++代码与Lua交互的函数。其中包括读写Lua全局变量、调用Lua函数、运行一段Lua代码,以及注册C函数以供Lua代码调用等。这里先给出一个简单的示例代码:
#include<stdio.h> #include<string.h> #include<lua.hpp> #include<lauxlib.h> #include<lualib.h>
intmain(void) { constchar*buff="print(\"hello\")"; interror; lua_State*L=luaL_newstate(); luaL_openlibs(L);
error=luaL_loadbuffer(L,buff,strlen(buff),"line")||lua_pcall(L,0,0,0); ints=lua_gettop(L); if(error){ fprintf(stderr,"%s",lua_tostring(L,-1)); lua_pop(L,1); } lua_close(L); return0; }