lua调用dll导出的函数
导出 函数 调用 dll lua
2023-09-14 08:58:44 时间
hello.dll
#include "pch.h"
#include "lua.hpp"
#pragma comment(lib, "lua.lib")
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
extern "C" {
int hello_a(lua_State* L) {
printf("hello a\n");
return 1;
}
int hello_b(lua_State* L) {
printf("hello b\n");
return 1;
}
__declspec(dllexport) LUALIB_API int __stdcall luaopen_hello(lua_State* L) {
lua_register(L, "a", hello_a);
lua_register(L, "b", hello_b);
return 1;
}
}
test.lua
require("hello")
a()
b()
测试
C:\Users\ajanuw\Desktop\hello\x64\Release>lua test.lua
hello a
hello b
准备工作:
- 将lua源码编译一份lua.lib放在hello/下
hello>wsl cp ../lua-5.4.0/src/*.h ../lua-5.4.0/src/*.hpp ./
打包后的结果:
hello\x64\Release>wsl ls *.dll *.lib
hello.dll hello.lib
将hello.dll
和test.lua
放在同级目录后> lua test.lua
相关文章
- 【已解决】easypoi在导出后Excel中数字不能直接求和。是文本格式。无法求和。怎么解决
- Bjqd apk 反编译代码(jadx导出gradle项目)
- 导出MySQL与Solr的数据导入导出(mysqlsolr导入)
- Linux SO库导出函数快速索引实现(linuxso导出函数)
- 使用Redis实现导出与导入(redis导出导入)
- Oracle 精准导出部分字段数据(oracle导出部分字段)
- MySQL导出:从列名中导出数据(mysql导出列名)
- MySQL仅导出函数:一次完成(mysql只导出函数)
- Linux C编程技巧:导出函数(linuxc导出函数)
- MySQL导出函数:轻松实现数据导出(mysql导出函数)
- 导出空表至Oracle:一步到位(oracle空表导出)
- 使用Oracle EXP语法导出数据库数据(oracle exp语法)
- MySQL导出所有Index和约束的方法