GA好望角|魔力宝贝私服|魔力私服|魔力私服|GA反外挂

 找回密码
 立即注册
凤凰(QQ:715837)
售前咨询
GA白皮书(客户端)
GA白皮书(服务端)
cgdev.me开发者论坛
放映地(炫斗魔力公益PK服)
新服发布站
欢迎来到GA好望角~
价格公示表
回首页
查看: 2563|回复: 1

在客户端lua中引用易语言编译的dll

[复制链接]

131

主题

137

帖子

137

积分

管理员

Rank: 9Rank: 9Rank: 9

金钱
2124
号角币
466
发表于 2021-4-26 00:08:04 | 显示全部楼层 |阅读模式

有时候我们需要一些权限 调用win32的api来实现一些特殊的功能

这个时候lua中没有相关接口 无法满足需求时
GA提供lua原版调用dll接口的方式 理论上支持所有语言编译出来的32位dll(易语言版)

QQ图片20210426004543.png

首先在本帖中下载开发包lib.zip
lib.zip (6.1 MB, 下载次数: 62)

文件目录:
  • lib                     易语言支持库文件 请将放置在易语言安装目录的lib下
  • static_lib            易语言支持库静态文件 请将放置在易语言安装目录的static_lib下
  • 2GA.exe            将易语言dll转换为GA模块 后面会有使用方法
  • galib.dll             依赖文件 请放置游戏客户端目录(与登录器放一起)
  • test.e                 一个示例文件源代码 可以自己打开查看
  • Ehelper.dll         test.e编译好的版本 可以自行查看

如何使用:
  • lib static_lib 中的文件 各自放到易语言目录下
  • 打开test.e文件 选择工具 -- 支持库配置 -- 找到LUAHelper支持库 勾选确认
  • QQ图片20210426001512.png
  • 编译 -- 静态编译 -- 编译出dll文件(这里假设文件名为 Ehelper.dll)
  • 打开2GA.exe 把编译出来的Ehelper.dll文件放进去 会得到一个 Ehelper_new.dll 文件
  • 把文件Ehelper_new.dll 改名回 Ehelper.dll (注意:必须与 luaopen_Ehelper 中的 Ehelper 同名[大小写敏感] 这是lua的require机制决定的 )
  • Ehelper.dll 与 galib.dll 放入游戏客户端(与登录器同目录)
  • 进入游戏测试 以下是测试代码


      
require("Ehelper")
msgbox('来自易语言的问候!','提示')
Cli.SysMessage('当前日期为:'.. getdate(),4,3)


QQ图片20210426002758.png



注意事项:
  • 易语言编译出来的dll会产生浮点数错误 需要在加减乘除运算的函数前加上 置入代码 ({219,227})
  • 124_161981_8bd9b27efd1ec1c.png
  • 易语言很多支持库不支持多线程 请尽量不要使用多线程
  • 易语言与C语言一样 也是内存不安全的语言 没有GC垃圾回收机制 请注意内存泄漏 数组溢出等问题
  • 由于可以直接调用win32系统api 所以GA不支持对调用本地代码的维护与BUG排查 请自行注意
  • dll文件可自行打包到登录器或者使用登录器更新 支持多个dll 请依次require即可
  • require单个dll 只需在脚本最前执行一次即可
  • 如发现写入恶意代码(如病毒木马 矿机等) 对玩家权益造成损害并有玩家举报 GA有权利终止服务















回复

使用道具 举报

1

主题

191

帖子

191

积分

注册会员

Rank: 2

金钱
104
号角币
0
发表于 2022-3-4 10:48:26 | 显示全部楼层

希望论坛越办越好,会员越来越多,越来越活跃
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|GA好望角

GMT+8, 2024-4-27 03:23 , Processed in 0.052008 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表