导入一个C函数给LUA
#include <stdio.h>
#include "lua.hpp"
#pragma comment(lib, "luaD.lib")
extern "C" {
// 一个Lua函数的标准模型
LUALIB_API int lua_TestFunc(lua_State* L)
{
printf("lua调用C函数\n");
// 表示有0个返回值
return 0;
}
}
int main()
{
// 创建一个虚拟机
lua_State* L = luaL_newstate();
// 加载一些常用的系统库
luaL_openlibs(L);
// 注册一个函数给lua
lua_register(L, "testFunc", lua_TestFunc);
// or
// 向栈中压入一个函数至栈顶
// lua_pushcfunction(L, lua_TestFunc);
// 将栈顶的名称元素设置名称为testFunc 在lua中可以范围该名称
// lua_setglobal(L, "testFunc");
// 加载lua文件并执行 名称为 main.lua
luaL_dofile(L, "main.lua");
// 关闭虚拟机
lua_close(L);
return 0;
}-- main.lua
print("Lua_Hello World!")
testFunc()