在炫语言里面,遇到没有的模块怎么办,就需要我们自己动手了,我们就来学习下如何把C++开源库封装成自己的模块。
上面是封装后的调用效果,下面讲讲如何实现:
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 是炫语言中的文本型和字节集类型。
然后我们再创建一个CPP文件编写具体的生成二维码功能代码:
这里是部分代码,这些代码主要是开源库本身提供的例子和AI提供的帮助,我们自己需要解决的主要是如何把炫语言自己的文本型、和字节集参数传入进去和接受结果。
之前模块定义中这三行注释目的:告诉IDE我们引用了炫语言基础模块(文本型、字节集支持等),参与编译的CPP文件,参与静态链接的库
//@依赖 module_base.h
//@src "module_zxing.cpp"
//@lib "ZXing.lib"
通过这个例子,我想说的是炫语言对于C++开源库的封装是比较容易的(对于有C++基础的用户),不需要像火山一样进行复杂的转换,以至于很多会C++的易友也不愿意给火山封装库。很多易语言用户会问,我都会C++了,那我还来研究你这玩意干啥,我想说炫语言是一个简化的C++开发工具,在有足够丰富的模块情况下,代替VS来开发C++项目是很轻松的。即使我会C++,有更快捷的工具我为什么不可以使用呢?
易语言没落也是没办法,作者也不管了,作为易友只能被迫寻找其它更好的开发工具,不然咋继续玩中文编程呢,同时想告诉大家不管选择什么编程工具,不要老是带着易语言那种思维,什么都要简化到极致,有时候简化也是一种限制,易语言就是各种简化,导致一些本来好实现的东西却反而需要更多的代码来实现。(当然如果有一种语言,他不仅简化,而且能解决所有问题,我肯定选它),但是这可能吗?
注:模块还没写完,后续会上传IDE在线模块中(下载后的模块也是源代码形式)
|