开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 341|回复: 6
收起左侧

[C/C++] 关于易语言调用C++编译DLL的问题

[复制链接]
发表于 2024-12-19 19:28:57 | 显示全部楼层 |阅读模式   广东省惠州市
需要一个用易语言识别多种类型条码功能,网上的普遍都是QRCODE的例子;后来找到一个C++调用ZXing封装的例子;DLL都生成好了,也有C++的源码(不怎么看得懂);
由于本人也就只会玩一点点易语言,所以对照C++源码,然后易语言调用DLL一直弄不好,C++的什么指针,void的根本理解不了;
所以有没有大佬帮我看看,我这个DLL调用究竟要怎么搞?

  
DLL命令名返回值类型公开备 注
ZXingReadImage整数型 读图像        识别图像返回的句柄
DLL库文件名:
VictorZXing.dll
在DLL库中对应命令名:
ZXingReadImage
参数名类 型传址数组备 注
lpGrayscaleData整数型
iWidth整数型
iHeight整数型
wOptions整数型
DLL命令名返回值类型公开备 注
ZXingReleaseBarcode 释放占用的资源
DLL库文件名:
VictorZXing.dll
在DLL库中对应命令名:
ZXingReleaseBarcode
参数名类 型传址数组备 注
HZXingBarcode整数型
DLL命令名返回值类型公开备 注
ZXingGetBarcodeCount整数型 获得条码数
DLL库文件名:
VictorZXing.dll
在DLL库中对应命令名:
ZXingGetBarcodeCount
参数名类 型传址数组备 注
HZXingBarcode整数型
DLL命令名返回值类型公开备 注
ZXingGetBarcodeData整数型 获得条码数据
DLL库文件名:
VictorZXing.dll
在DLL库中对应命令名:
ZXingGetBarcodeData
参数名类 型传址数组备 注
HZXingBarcode整数型
lpBuffer文本型void *lpBuffer
iBufferSize整数型int iBufferSize
iBarcodeIndex整数型int iBarcodeIndex
DLL命令名返回值类型公开备 注
ZXingGetBarcodeText整数型 获得条码文本
DLL库文件名:
VictorZXing.dll
在DLL库中对应命令名:
ZXingGetBarcodeText
参数名类 型传址数组备 注
HZXingBarcode整数型
lpsBuffer文本型char *lpsBuffer
iBufferSize整数型int iBufferSize  
iCodePage整数型int iCodePage  
iBarcodeIndex整数型int iBarcodeIndex   
DLL命令名返回值类型公开备 注
ZXingGetBarcodeFormat整数型 获得条码格式
DLL库文件名:
VictorZXing.dll
在DLL库中对应命令名:
ZXingGetBarcodeFormat
参数名类 型传址数组备 注
HZXingBarcode整数型
iBarcodeIndex整数型int iBarcodeIndex  条码索引
DLL命令名返回值类型公开备 注
ZXingGetBarcodeFormatName整数型 获得条码格式名称
DLL库文件名:
VictorZXing.dll
在DLL库中对应命令名:
ZXingGetBarcodeFormatName
参数名类 型传址数组备 注
HZXingBarcode整数型
lpsBuffer文本型char *lpsBuffer
iBufferSize整数型int iBufferSize
iBarcodeIndex整数型int iBarcodeIndex
DLL命令名返回值类型公开备 注
ZXingGetBarcodeResultPointCount整数型 获得条码结果指向数
DLL库文件名:
VictorZXing.dll
在DLL库中对应命令名:
ZXingGetBarcodeResultPointCount
参数名类 型传址数组备 注
HZXingBarcode整数型
iBarcodeIndex整数型int iBarcodeIndex
DLL命令名返回值类型公开备 注
ZXingGetBarcodeResultPoint整数型 获得条码结果指向
DLL库文件名:
VictorZXing.dll
在DLL库中对应命令名:
ZXingGetBarcodeResultPoint
参数名类 型传址数组备 注
HZXingBarcode整数型
lpPoint整数型POINTFLOAT *lpPoint
iPointIndex整数型int iPointIndex
iBarcodeIndex整数型int iBarcodeIndex
DLL命令名返回值类型公开备 注
ZXingGetErrorCode整数型 获得错误码
DLL库文件名:
VictorZXing.dll
在DLL库中对应命令名:
ZXingGetErrorCode
参数名类 型传址数组备 注
HZXingBarcode整数型
DLL命令名返回值类型公开备 注
ZXingGetErrorClass整数型 获得条码错误类别
DLL库文件名:
VictorZXing.dll
在DLL库中对应命令名:
ZXingGetErrorClass
参数名类 型传址数组备 注
HZXingBarcode整数型
lpsBuffer文本型char *lpsBuffer
iBufferSize整数型int iBufferSize
DLL命令名返回值类型公开备 注
ZXingGetErrorMessage整数型 获得条码错误信息
DLL库文件名:
VictorZXing.dll
在DLL库中对应命令名:
ZXingGetErrorMessage
参数名类 型传址数组备 注
HZXingBarcode整数型
lpsBuffer文本型char *lpsBuffer
iBufferSize整数型int iBufferSize


  
子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
图片文件字节集 
整数型 
图像句柄整数型 
text文本型 
text2文本型 
iBarcodeIndex整数型 
iCodePage整数型 
iBufferSize整数型 
point整数型 
' 局字节集 = 读入文件 (“剪貼簿01 (DATA_MATRIX) 2.png”)
' 图片文件 = 读入文件 (“剪貼簿01 (DATA_MATRIX) 2.bmp”)
图片文件 = 读入文件 (“aaaaasdasd豆腐干豆腐干.bmp”)
输出调试文本 (取字节集长度 (图片文件))
图像句柄 = 获取图像句柄 (图片文件)
输出调试文本 (图像句柄)
输出调试文本 (“==================识别图像”)
数 = ZXingReadImage (取变量地址 (图片文件), 296, 265, 0)
' 数 = ZXingReadImage (图像句柄, 296, 265, 0)
' 数 = ZXingReadImage (图像句柄, 526, 508, 0)
输出调试文本 ()
输出调试文本 (“==================获得条码数”)
输出调试文本 (ZXingGetBarcodeCount ())
' iBufferSize = 取字节集长度 (图片文件)
' iBarcodeIndex = 取变量地址 (图片文件)
输出调试文本 (“==================获得条码文本”)
输出调试文本 (ZXingGetBarcodeText (数, text, iBufferSize, iCodePage, iBarcodeIndex))
输出调试文本 (text)
输出调试文本 (iBufferSize)
输出调试文本 (iCodePage)
输出调试文本 (iBarcodeIndex)
输出调试文本 (“======================获得条码数据”)
输出调试文本 (ZXingGetBarcodeData (数, text2, iCodePage, iBarcodeIndex))
输出调试文本 (text2)
输出调试文本 (iCodePage)
输出调试文本 (iBarcodeIndex)
输出调试文本 (“======================获得条码结果指向”)
输出调试文本 (ZXingGetBarcodeResultPoint (数, point, iCodePage, iBarcodeIndex))
输出调试文本 (point)
输出调试文本 (iCodePage)
输出调试文本 (iBarcodeIndex)
输出调试文本 (“======================获得条码结果指向”)
输出调试文本 (ZXingGetBarcodeResultPoint (数, point, iCodePage, iBarcodeIndex))
输出调试文本 (point)
输出调试文本 (iCodePage)
输出调试文本 (iBarcodeIndex)
输出调试文本 (“======================获得条码结果指向数”)
输出调试文本 (ZXingGetBarcodeResultPointCount (数, iBarcodeIndex))
输出调试文本 (iBarcodeIndex)
输出调试文本 (“======================获得条码格式名称”)
输出调试文本 (ZXingGetBarcodeFormatName (数, text, iBufferSize, iBarcodeIndex))
输出调试文本 (text)
输出调试文本 (iBufferSize)
输出调试文本 (iBarcodeIndex)
输出调试文本 (“======================获得条码格式”)
输出调试文本 (ZXingGetBarcodeFormat (数, iBarcodeIndex))
输出调试文本 (iBarcodeIndex)
输出调试文本 (“======================错误代码”)
输出调试文本 (ZXingGetErrorCode ())
输出调试文本 (ZXingGetErrorClass (数, text, iBufferSize))
输出调试文本 (ZXingGetErrorMessage (数, text, iBufferSize))
ZXingReleaseBarcode ()
输出调试文本 (释放图像句柄 (图像句柄))
返回 (0)  ' 可以根据您的需要返回任意数值



i支持库列表   支持库注释   
spec特殊功能支持库



放上附件:
压缩包1. zxing-cpp-master
   二维码和条码识别库,源码 + C++ Builder 10.2 项目文件
   可以编译静态库版本和动态库版本

   文件夹:
       C++ Builder 包含 C++ Builder 10.2 编译静态库和动态库项目文件
         其中:
           projects\victor_zxing_all.groupproj 是项目组,包含所有编译库的项目
           dll    包含编译完成的 .dll 文件和对应的 .lib 或 .a 库文件
           lib    包含编译完成的 .lib 或 .a 静态库文件,分别对应 Win32 和 Win64
           source 包含编译动态库的源码
        其他文件夹:zxing-cpp-master 官方源码

压缩包2. zxing-cpp-master
     zxing_dll_test 动态库演示程序,包含 C++ Builder C10.1 和 C++ Builder 2010 项

压缩包3
    我自己写的易语言代码

我自己写的易语言代码.rar

2.63 MB, 下载次数: 11

我自己写的易语言代码

zxing-cpp-master.rar

1.78 MB, 下载次数: 7

C++ Builder 包含 C++ Builder 10.2 编译静态库和动态库项目文件

zxing-test.rar

2.92 MB, 下载次数: 7

动态库演示程序,包含 C++ Builder C10.1 和 C++ Builder 2010 项

这个是C++的源码

这个是C++的源码

这个是我自己程序调试的结果

这个是我自己程序调试的结果

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:99% (126/127)

签到天数: 20 天

发表于 2024-12-19 19:43:40 | 显示全部楼层   贵州省贵阳市
看不懂。。。
* 26102
* 1124437132
* 126973056
* 0
* ==================获得条码文本
* 0
*
* 26102
* 0
* 54513776
* ======================获得条码数据
* 0
*
* 0
* 54513776
* ======================获得条码结果指向
* 0
* 0
* 0
* 54513776
* ======================获得条码结果指向
* 0
* 0
* 0
* 54513776
* ======================获得条码结果指向数
* 0
* 54513776
* ======================获得条码格式名称
* 0
*
* 26102
* 54513776
* ======================获得条码格式
* 0
* 54513776
* ======================错误代码
* 11
* 15
* 15
* 假
回复 支持 反对

使用道具 举报

结帖率:95% (19/20)

签到天数: 17 天

发表于 2024-12-19 19:51:52 | 显示全部楼层   福建省宁德市
如果dll没错的话,易语言中定义dll,除了文本型需要勾选传址外,向指针、iBufferSize 缓冲区大小等参数不要传址
回复 支持 反对

使用道具 举报

签到天数: 17 天

 楼主| 发表于 2024-12-19 20:42:12 | 显示全部楼层   广东省惠州市
大漠小鸟 发表于 2024-12-19 19:51
如果dll没错的话,易语言中定义dll,除了文本型需要勾选传址外,向指针、iBufferSize 缓冲区大小等参数不要 ...

之前是没有勾选的,结果是一样的;后面勾选以后就是想看看有没有变化!
回复 支持 反对

使用道具 举报

结帖率:100% (20/20)

签到天数: 20 天

发表于 2024-12-19 21:43:29 | 显示全部楼层   广东省惠州市
void是空类型!等于易语言的无返回值的意思,多*号就是指针,void*是空类型指针也可以叫通用指针.你是要学点c++的东西,先从炫语言入手就能学好c++了!!
回复 支持 反对

使用道具 举报

签到天数: 20 天

发表于 2024-12-20 07:59:47 | 显示全部楼层   河北省石家庄市
https://bbs.125.la/forum.php?mod ... amp;highlight=ZXing

看看前人的例子对你有没有帮助
回复 支持 反对

使用道具 举报

签到天数: 17 天

 楼主| 发表于 2024-12-20 21:09:25 | 显示全部楼层   广东省惠州市
番茄吧 发表于 2024-12-20 07:59
https://bbs.125.la/forum.php?mod=viewthread&tid=14705398&highlight=ZXing

看看前人的例子对你有没有帮 ...

他这个只支持QR_CODE二维码的,其他类型的没有
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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