开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1231|回复: 31
收起左侧

[源码] 【炫语言】二维码生成(学习如何封装C++开源库)

[复制链接]
发表于 2024-9-25 22:01:37 | 显示全部楼层 |阅读模式   重庆市重庆市
在炫语言里面,遇到没有的模块怎么办,就需要我们自己动手了,我们就来学习下如何把C++开源库封装成自己的模块。

QQ20240925-210644.png
QQ20240925-210706.png


上面是封装后的调用效果,下面讲讲如何实现:


ZXing是一个强大的条形码开源库,支持超多类型的条码生成与识别,支持很多平台和语言,ZXing-cpp就是针对C++的版本,我们需要自己编译开源项目得到它的静态库和动态库。

我知道对于易语言菜鸟想要自己编译一个CPP开源库简直是噩梦,但是只要你认真学习,你就会发现依然是噩梦,不过微软的VS提供了一个稍微简单一点的工具(vcpkg),可以使用它帮你编译微软已经收录过的开源CPP项目(主流开源库基本都有),如果你电脑上安装了VS和其中的vcpkg组件,你只需要创建一个文件夹,然后在当前目录运行CMD,输入这个三行命令即可帮你编译好这个开源库:

[Shell] 纯文本查看 复制代码
vcpkg  new --application
vcpkg add port zxing-cpp
vcpkg install



这三个命令负责创建一个编译配置、添加一个库、执行安装,更多细节问题需要更深入的学习。




我使用的VSCode来开发:
1、首先创建一个C++头文件,按下图所示定义我们的模块基本信息,然后定义一个C++类,这个类将被炫语言的IDE解析,变成可调用的模块。
注:(如果其中的各种名称没有添加注释和别名,在炫语言中就是原来的英文名称直接使用,如果有中文别名,我们也能直接使用中文名称)


代码说明:代码中用到的 CXTextA CXBytes  是炫语言中的文本型和字节集类型。
QQ20240925-211247.png

然后我们再创建一个CPP文件编写具体的生成二维码功能代码:
这里是部分代码,这些代码主要是开源库本身提供的例子和AI提供的帮助,我们自己需要解决的主要是如何把炫语言自己的文本型、和字节集参数传入进去和接受结果。
QQ20240925-212031.png

之前模块定义中这三行注释目的:告诉IDE我们引用了炫语言基础模块(文本型、字节集支持等),参与编译的CPP文件,参与静态链接的库
//@依赖  module_base.h

//@src "module_zxing.cpp"

//@lib "ZXing.lib"



通过这个例子,我想说的是炫语言对于C++开源库的封装是比较容易的(对于有C++基础的用户),不需要像火山一样进行复杂的转换,以至于很多会C++的易友也不愿意给火山封装库。很多易语言用户会问,我都会C++了,那我还来研究你这玩意干啥,我想说炫语言是一个简化的C++开发工具,在有足够丰富的模块情况下,代替VS来开发C++项目是很轻松的。即使我会C++,有更快捷的工具我为什么不可以使用呢?


易语言没落也是没办法,作者也不管了,作为易友只能被迫寻找其它更好的开发工具,不然咋继续玩中文编程呢,同时想告诉大家不管选择什么编程工具,不要老是带着易语言那种思维,什么都要简化到极致,有时候简化也是一种限制,易语言就是各种简化,导致一些本来好实现的东西却反而需要更多的代码来实现。(当然如果有一种语言,他不仅简化,而且能解决所有问题,我肯定选它),但是这可能吗?








注:模块还没写完,后续会上传IDE在线模块中(下载后的模块也是源代码形式)





点评

比起楼主,你们这些张口喷粪的更令人感到不伦不类,别给精易论坛丢脸了   河南省新乡市  发表于 2024-9-26 13:00
chatgpt真好用   四川省巴中市  发表于 2024-9-26 08:01
炫语言本来就免费, 何来的蹭一个免费使用, 啥都不清楚来误导人   广东省佛山市  发表于 2024-9-26 02:35
你们炫语言没有自己的论坛吗?   湖南省永州市  发表于 2024-9-26 00:59
这里是易语言编程,请不要把这些不伦不类的玩意发到这里,不要以为别人不知道你就是为了一个蹭个免费使用   广东省揭阳市  发表于 2024-9-26 00:48

评分

参与人数 5好评 +4 精币 +10 收起 理由
dongou + 1 + 2 新技能已get√
笨来无一悟 + 1 + 3 多发点 气死某些鳖孙~~~老衲来超度
多多帅吧 + 1 大神,请收下我的膝盖
呵呵仙 + 1 + 3 给个好评,拿下2精币先!
文西哥 + 1 + 1 感谢分享,很给力!~

查看全部评分

结帖率:50% (1/2)

签到天数: 24 天

发表于 2024-10-1 16:58:58 | 显示全部楼层   湖北省襄阳市
吃泡面加不起蛋 发表于 2024-9-28 14:49
完全看不懂,等看懂了估计都会c++了

偷偷告诉你,可以用gpt
回复 支持 反对

使用道具 举报

结帖率:80% (8/10)

签到天数: 25 天

发表于 2024-9-28 14:49:28 | 显示全部楼层   河北省邯郸市
完全看不懂,等看懂了估计都会c++了

点评

对于人均初中水平的易语言用户来说,简直是致命打击,还是得靠大佬多封装   河北省邯郸市  发表于 2024-9-28 14:51
回复 支持 反对

使用道具 举报

结帖率:80% (8/10)

签到天数: 12 天

发表于 2024-9-27 17:23:25 | 显示全部楼层   河南省新乡市
666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:0% (0/4)

签到天数: 6 天

发表于 2024-9-27 12:54:38 | 显示全部楼层   四川省成都市
好用吗
回复 支持 反对

使用道具 举报

结帖率:73% (8/11)

签到天数: 26 天

发表于 2024-9-27 10:18:28 | 显示全部楼层   河南省焦作市

感觉很不错呦。
回复 支持 反对

使用道具 举报

签到天数: 27 天

 楼主| 发表于 2024-9-27 09:02:34 | 显示全部楼层   重庆市重庆市
没事瞎琢磨 发表于 2024-9-26 17:01
出视频 这说得不清楚 没法学

视频教程录起来好麻烦
回复 支持 反对

使用道具 举报

结帖率:60% (3/5)

签到天数: 30 天

发表于 2024-9-26 17:01:39 | 显示全部楼层   天津市天津市
出视频 这说得不清楚 没法学

点评

视频教程录起来好麻烦   重庆市重庆市  详情 回复 发表于 2024-9-27 09:02
回复 支持 反对

使用道具 举报

签到天数: 27 天

 楼主| 发表于 2024-9-26 17:00:50 | 显示全部楼层   重庆市重庆市
祭祀雨人 发表于 2024-9-26 16:54
我没记错的话,zxing好像在一些其他电脑上不能直接用,好像需要个C++库

写漏了,还需要stb_image库,只有头文件,直接引用就好了
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 29 天

发表于 2024-9-26 16:54:53 | 显示全部楼层   广东省汕头市
我没记错的话,zxing好像在一些其他电脑上不能直接用,好像需要个C++库

点评

写漏了,还需要stb_image库,只有头文件,直接引用就好了   重庆市重庆市  详情 回复 发表于 2024-9-26 17:00
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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