准备
首先你要有 Lua 环境,可以安装比较方便的 lua 5.1 。
😕 😕 😕
也可以去 lua 官网下载源码自己编译
手动搭建 lua 5.3 教程参考这里
开始
创建一个空的 Dll 项目,随便起名。在项目属性 - C++ - 附加包含目录 中添加 lua 中的
include 文件夹:
然后在 属性- 连接器 - 常规 - 附加库目录 添加 lua 的 lib 文件夹:
再在 属性 - 链接器 - 输入 - 附加依赖项 中加入 lua5.1.lib:
将如下代码粘贴到 main.cpp 内:
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
};
#include <iostream>
using namespace std;
// 给 Lua 调用的函数
int ShowMsg(lua_State* luaEnv) {
cout << "Hello aaa" << endl;
return 0;
}
// { 函数名,函数指针 },必须以 { NULL, NULL } 结尾
luaL_Reg luaLibs[] = {
{ "ShowMsg", ShowMsg},
{ NULL, NULL }
};
// dll 导出函数
extern "C" __declspec(dllexport)
void luaopen_aaa(lua_State* luaEnv) {
char* LIBRARY_NAME = "aaa";
luaL_register(
luaEnv, // 主线程栈结构
LIBRARY_NAME, // 表名,也是 dll 文件名
luaLibs // 表实例
);
}
编译,找到你的 dll,把名字改成 aaa.dll,放到这个路径内:
打开 lua 编辑器。写如下代码:
require "aaa"
aaa.ShowMsg()
点击运行,成功!