码龄10年
暂无认证
43399
访问
1
等级
8
获赞
3
评论
热门文章
-
一.某岛之人物对象及其加密函数解析
2654
-
一.《传奇M》装备栏遍历的突破口
2282
-
二.某龙端游中LUA的分析和调用
2036
-
一.窗口坐标与屏幕坐标
1757
-
一.《轩辕传奇》周围遍历之二叉树
1755
最新评论
-
20240228阿⑤
积分乍获得
-
20231124ziher
666
-
20230909八月老师
什麼時候發佈易語言支持庫呢
一.《LUA与C++》环境搭建
Heart
2023-05-21 08:14:10 发布
432
分类专栏: 开发技术 文章标签: LUA C++ 环境搭建
LUA库之介绍和环境搭建
参考手册文档:https://www.mianshigee.com/tutorial/lua-5.3/
1.库编译

2.警告一个

3.修改运行库 这里用的是静态库debug版本

4.导出库需要的宏 为了兼容老版本的函数
//为了要导出库 就要加上以下2个预定义 // 在luaconf.h中 // LUA_BUILD_AS_DLL 导出函数标记 // 在luxlib.h中 // LUA_COMPAT_MODULE 导出几个能加载第三方库的函数和库的 函数 为了兼容老的模块
5.不加上也可以使用 但是一些函数用不了,比如:

5.1.加上才可以使用
LUADLLHEART_EXPORTS LUA_BUILD_AS_DLL LUA_COMPAT_MODULE

6.库集合

7.头文件和库的引入
//包含LUA
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
//编译库的时候最好加上3个宏
//LUADLLHEART_EXPORTS
//LUA_BUILD_AS_DLL
//LUA_COMPAT_MODULE
//为了要导出库 就要加上以下2个预定义
// 在luaconf.h中
// LUA_BUILD_AS_DLL 导出函数标记
// 在luxlib.h中
// LUA_COMPAT_MODULE 导出几个能加载第三方库的函数和库的 函数 为了兼容老的模块
#ifndef _WIN64
#ifdef _DEBUG
#pragma comment(lib,"../LUA532Lib/lua532luaX86D_A.lib")
#else
#pragma comment(lib,"../LUA532Lib/lua532luaX86_A.lib")
#endif
#else
#ifdef _DEBUG
#pragma comment(lib,"../LUA532Lib/lua532luaX64D_A.lib")
#else
#pragma comment(lib,"../LUA532Lib/lua532luaX64_A.lib")
#endif
#endifectern "C" 的原因
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言(而不是C++)的方式进行编译。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。
ectern "C"出现情况
这个功能十分有用处,因为在C++出现以前,很多代码都是C语言写的,而且很底层的库也是C语言写的,为了更好的支持原来的C代码和已经写好的C语言库,需要在C++中尽可能的支持C,而extern "C"就是其中的一个策略。
这个功能主要用在下面的情况:
1.C++代码调用C语言代码
2.在C++的头文件中使用
3.在多个人协同开发时,可能有的人比较擅长C语言,而有的人擅长C++,这样的情况下也会有用到
网友评论
0条评论 0人参与
评论列表
0
0