使用的是lua5.3

DllMain.cpp

  1. 1 //生成的dll 是 lua_add53.dll
  2. 2 //luaopen_lua_add
  3. 3 extern "C" {
  4. 4 #include "F:/lua_src/lua-5.3.5_Win64_vc15_lib/include/lua.h"
  5. 5 #include "F:/lua_src/lua-5.3.5_Win64_vc15_lib/include/lualib.h"
  6. 6 #include "F:/lua_src/lua-5.3.5_Win64_vc15_lib/include/lauxlib.h"
  7. 7 };
  8. 8 #pragma comment(lib, "F:/lua_src/lua-5.3.5_Win64_vc15_lib/lua53.lib")
  9. 9
  10. 10 #include <iostream>
  11. 11 using namespace std;
  12. 12
  13. 13 extern "C" int ShowMsg(lua_State* luaEnv) {
  14. 14 cout << "Hello world from clibs!" << endl;
  15. 15 return 0; // 返回值个数为0个.
  16. 16 }
  17. 17
  18. 18 extern "C" int sub2(lua_State* L)
  19. 19 {
  20. 20 double op1 = luaL_checknumber(L, 1);
  21. 21 double op2 = luaL_checknumber(L, 2);
  22. 22 int temp = op1 - op2;
  23. 23 lua_pushnumber(L, temp);
  24. 24 return 1;
  25. 25 }
  26. 26
  27. 27 // part one: 要导出的函数列表
  28. 28 static luaL_Reg luaLibs[] = {
  29. 29 { "ShowMsg", ShowMsg},
  30. 30 { "sub2", sub2},
  31. 31 { NULL, NULL }
  32. 32 };
  33. 33
  34. 34 // part two: DLL入口函数,Lua调用此DLL的入口函数.
  35. 35 extern "C" __declspec(dllexport)
  36. 36 int luaopen_lua_add(lua_State* luaEnv) { //WinFeature是modole名, 将来require这个名字
  37. 37 //lua_register(luaEnv, "ShowMsg", ShowMsg); //关键一行, 在luaState上注册好这个lib
  38. 38 //lua_register(luaEnv, "sub2", sub2); //关键一行, 在luaState上注册好这个lib
  39. 39 lua_newtable(luaEnv);
  40. 40 luaL_setfuncs(luaEnv, luaLibs,0);
  41. 41 return 1;
  42. 42 }

编译后是 lua_add53.dll

lua

  1. 1 local mytest = require "lua_add"
  2. 2 mytest.ShowMsg();
  3. 3 print(mytest.sub2(1,2));

lua调用dll demo的更多相关文章

  1. lua调用dll导出的函数

    参考手册 hello.dll #include "pch.h" #include "lua.hpp" #pragma comment(lib, "lu ...

  2. #Lua:Lua调用C++生成的DLL库

    Lua调用C++生成的DLL库 本文参考了某大佬的博客,写得十分详细,推荐!!! 需求: 在之前的求解器中添加了Lua库,使得程序可以在Lua脚本中实现自定义函数功能,考虑到未来可能需要与第三方程序库 ...

  3. Lua与C++交互初探之Lua调用C++

    Lua与C++交互初探之Lua调用C++ 上一篇我们已经成功将Lua的运行环境搭建了起来,也成功在C++里调用了Lua函数.今天我来讲解一下如何在Lua里调用C++函数. Lua作为一个轻量级脚本语言 ...

  4. java中调用dll文件的两种方法

    一中是用JNA方法,另外是用JNative方法,两种都是转载来的, JNA地址:http://blog.csdn.net/shendl/article/details/3589676   JNativ ...

  5. DLL模块例2:使用__declspec(dllexport)导出函数,extern "C"规范修饰名称,隐式连接调用dll中函数

    以下内容,我看了多篇文章,整合在一起,写的一个例子,关于dll工程的创建,请参考博客里另一篇文章:http://www.cnblogs.com/pingge/articles/3153571.html ...

  6. DLL模块例1:使用.def模块导出函数,规范修饰名称,显示连接调用dll中函数

    以下内容,我看了多篇文章,整合在一起,写的一个例子,关于dll工程的创建,请参考博客里另一篇文章:http://www.cnblogs.com/pingge/articles/3153571.html ...

  7. Java调用.dll文件

    因为项目的需求,要在JAVA项目中调用Windows的Dll(动态链接库)文件,之前用Jni调用过C写的Dll文件,比较麻烦,这里不多说,网上也有很多这方面的文档.在网上找到一个开源的组件JNativ ...

  8. Java调用DLL有多种方式,常用的方式有JNative、JNA、JNI等。

    JNative方式调用dll JNative是一种能够使Java语言使调用DLL的一种技术,对JNI进行了封装,可能有些读者会有这样一个问题,JNative对JNI进行了封装,并且是一种跨语言的使用D ...

  9. 如何使用g++编译调用dll的c++代码

    本文将有以下4个部分来讲如何使用g++编译调用dll的c++代码. 1.如何调用dll 2.动态链接和静态链接的区别 3.g++的编译参数以及如何编译调用dll的c++代码 4.总结 1.如何调用dl ...

随机推荐

  1. Rust之路(4)——所有权

    [未经书面同意,严禁转载] -- 2020-10-14 -- 所有权是Rust的重中之重(这口气咋像高中数学老师 WTF......). 所有权是指的对内存实际存储的数据的访问权(包括读取和修改),在 ...

  2. MeteoInfoLab脚本示例:计算水平螺旋度

    尝试了用MeteoInfoLab编写计算水平螺旋度的脚本,结果未经验证.脚本程序: print 'Open data files...' f_uwnd = addfile('D:/Temp/nc/uw ...

  3. Redis不重启的情况下 切换持久化模式

    确保redis版本在2.2以上 [root@localhost /]# redis-server -v Redis server v=4.0.10 sha=00000000:0 malloc=jema ...

  4. ansible2.9.5使用become参数实现sudo功能

    一,为什么要使用sudo? 1, 生产环境中,为了安全因素,我们不会直接使用root来登录到server, 确实有需要的情况下,我们再使用sudo切换到root权限. 所以很多ansible的演示直接 ...

  5. Excel 导出的方法 之二

    // <summary> /// 导出到Excel lichenghu /// </summary> /// <param name="dt"> ...

  6. vscode配置python调试仍然直接输出

    工作目录不能放在python的安装目录下

  7. DefenseCode宣布集成GitHub为开发人员提供SAST解决方案

    DefenseCode集团宣布,DefenseCode静态应用程序安全测试(SAST)ThunderScan解决方案现可作为一个GitHub Action,提供30多种语言的安全漏洞分析,并将详细的漏 ...

  8. 初学 Python 需要安装哪些软件?

    自动配置.有效求助.协作编程.版本控制.一站式解决 Python 新手练习中的痛点. 痛点 这个学期,我在北得克萨斯大学(University of North Texas)教 INFO 5731: ...

  9. 基于Spring读写分离

    为什么是基于Spring的呢,因为实现方案基于Spring的事务以及AbstractRoutingDataSource(spring中的一个基础类,可以在其中放多个数据源,然后根据一些规则来确定当前需 ...

  10. 获取和设置pdf目录

    目录 前言 工具 获取pdf目录 获取toc格式目录 获取json格式目录 设置pdf目录 结语 前言 获取pdf目录:主要场景是为了拿到目录信息做编辑,从pdf软件里面一个个复制那肯定费时费力. 设 ...