lua 调用 dll 的简单demo

lua 调用 dll 的简单demo

windows下的 lua 与 c 进行交互, 本人新手,只能做到这么多了

c代码

//#include "stdio.h"#include "windows.h"#ifdef _cplusplus  extern "C"{#endif#include "lua.h"#include "lauxlib.h"#include "lualib.h"extern  int  isquare(lua_State *L);extern  int  alert(lua_State *L);#ifdef _cplusplus}#endifint luaopen_add(lua_State *L){    lua_register(            L,               /* Lua 状态机 */            "square",        /*Lua中的函数名 */            isquare          /*当前文件中的函数名 */            );     lua_register(L,"alert",alert);//    lua_register(L,"cube",icube);    return 0;}int alert(lua_State *L){    const char * desc = lua_tostring(L,-1);    MessageBox(NULL,desc,"alert",MB_OK);    return 1;}int isquare(lua_State *L){              /* C中的函数名 */    float rtrn = lua_tonumber(L, -1);      /* 从Lua虚拟机里取出一个变量,这个变量是number类型的 */    //printf("Top of square(), nbr=%f",rtrn);    lua_pushnumber(L,rtrn*rtrn);           /* 将返回值压回Lua虚拟机的栈中 */    return 1;                              /* 这个返回值告诉lua虚拟机,我们往栈里放入了多少个返回值 */}

编译命令

cl /c add.c /I ../include

include 为 lua 头文件所在目录

link /def:export.def /dll add.obj ../lua53.lib "kernel32.lib" "user32.lib" "gdi32.lib"

导出函数到 dll

export.def

; export.defLIBRARY ADD; MY_DLLMAIN 将成为生成的dll的名称DESCRIPTION  'test'EXPORTS    isquare  @ 1    alert    @ 2; 这个名称即为函数的实际导出名称 @1为函数的导出编号

lua

square = package.loadlib("ADD.dll", "isquare")alert=package.loadlib("ADD.dll", "alert")print(alert)print ( square(2) )alert("222")

执行结果

虽然有乱码存在问题,但是期望结果基本已经达到

推荐阅读

    excel怎么用乘法函数

    excel怎么用乘法函数,乘法,函数,哪个,excel乘法函数怎么用?1、首先用鼠标选中要计算的单元格。2、然后选中单元格后点击左上方工具栏的fx公

    excel中乘法函数是什么?

    excel中乘法函数是什么?,乘法,函数,什么,打开表格,在C1单元格中输入“=A1*B1”乘法公式。以此类推到多个单元。1、A1*B1=C1的Excel乘法公式

    标准差excel用什么函数?

    标准差excel用什么函数?,函数,标准,什么,在数据单元格的下方输入l标准差公式函数公式“=STDEVPA(C2:C6)”。按下回车,求出标准公差值。详细

    联想垫a2207如何调用a2207平板评价

    联想垫a2207如何调用a2207平板评价,,联想a2207垫在1600 3G双网双待平板电脑的位置。作为以前的热门产品a2107升级版,a2207处理器取得了可观

    excel常用函数都有哪些?

    excel常用函数都有哪些?,函数,哪些,常用,1、SUM函数:SUM函数的作用是求和。函数公式为=sum()例如:统计一个单元格区域:=sum(A1:A10)  统计多个

    最简单的电脑换ip方法|如何换电脑IP

    最简单的电脑换ip方法|如何换电脑IP,,1. 如何换电脑IP1、找到网络图标,右击“属性”。到“网络与共享中心”;最左边蓝色区域里,点击“更改适

    js用代码实现简单购物车

    js用代码实现简单购物车,,图: 选择所有按钮: 复制代码代码如下所示: 选择 笔记本电脑:3000元 笔记本电脑:3000元 笔记本电脑:3000元 笔记本电脑:3