导入一个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()
最后修改:2024 年 08 月 30 日
如果觉得我的文章对你有用,请随意赞赏