当前位置:首页 > 文章中心 > 正文内容

使用VS2017编译条形码、二维码开源库Zint

dgx6661个月前 (06-25)文章中心4

Zint介绍

Zint是一个强大的二维码编码生成开源工具,基于C语言开发,允许在任何广泛的公共领域条形码标准中轻松编码数据,并允许将此功能集成到你自己的程序。

Zint 能够对以下格式的数据进行编码:

Code 11, Standard Code 2 of 5, IATA Code 2 of 5, Industrial Code 2 of 5,
Interleaved Code 2 of 5, Code 2 of 5 Data Logic, ITF-14, Deutche Post
Leitcode, Deutche Post Identcode, UPC-A, UPC-E, EAN-2, EAN-5, EAN-8,
EAN-13, UK Plessey, MSI Plessey, Telepen Alpha, Telepen Numeric, Code 39,
Extended Code 39, Code 93, PZN, Code 23, LOGMARS, Codabar, Pharmacode, Code
128, EAN-128, NVE-18, Code 16k, PDF417, MicroPDF417, Two-Track Pharmacode,
PostNet, PLANET, Australia Post 4-State Symbols, RM4SCC, USPS OneCode, GS1
DataBar, DataBar-14, DataBar Limited, DataBar Extended, DataBar Stacked,
Composite Symbology, Data Matrix, QR Code, Maxicode, Aztec Code, EAN-13,
Micro QR, Korea Post Barcode, HIBC Code 128, HIBC Code 39, HIBC Data Matrix,
HIBC PDF417, HIBC MicroPDF417, HIBC QR Code, HIBC Aztec Code, Japanese Postal
Code, Code 49, Channel Code, Code One, Grid Matrix, FIM and Flattermarken.

编译方法

1、下载需要的库

Zint 本身其实不依赖其他库,但是如果需要使用到 PNG 保存的话,那么需要 libpng 和 zlib。

首先,下载这三个库,然后解压放置在同一个文件夹中。本文中,使用 zlib-1.2.11、libpng1.6.37 和 zint-2.3.0(你也可以使用其他版本,但是可能也会遇到其他问题)。下载链接如下:

zlib 			https://zlib.net/fossils/
zint 			https://sourceforge.net/projects/zint/files/zint/
libpng 	https://sourceforge.net/projects/libpng/files/libpng16/

下载好以后,解压到同一文件夹,如下图所示:

2、编译 libpng

libpng 依赖 zlib,在 libpng 的工程项目中,已经包含了 zlib,因此,我们只要编译 libpng 的项目,就可以得到 libpng 和 zlib 的链接库。而编译 libpng 首先需要编译 zlib。步骤如下:

(1)打开 lpng -> projects -> vstudio -> vstudio.sln

我这里使用的是 vs2017,打开 vstudio.sln 时,会提示升级之类的,点确定即可。

(2)解决「error C2220: 警告被视为错误」

如果直接生成解决方案,会出现 「error C2220: 警告被视为错误」 这样的错误,解决方法为:右键项目 -> 属性 -> C/C++ -> 常规 -> 将错误视为警告改为 「否」。

(3)生成 zlib.lib

右键项目 -> 生成 即可。

(4)生成 libpng.lib

右键项目 -> 生成 即可。

上述步骤生成的为 Debug 版本的库,通常情况我们也需要 Release 版本的库。生成步骤同 1~4,只是将 Debug 环境改为 Release 环境。

生成的库如下图所示:


3、编译 zint

zint 的依赖库 libpng 和 zlib 已经编译完毕,现在可以开始编译 zint 了,步骤如下:

(1)设置「附加包含目录」和 「附加库目录」

设置「附加包含目录」:libzint 右键属性 -> C/C++ -> 附加包含目录 -> 添加 lpng 目录和 zlib 目录。

设置「附加库目录」:libzint 右键属性 -> 链接器 -> 常规 -> 附加库目录 -> 添加 Step 2 中 zlib.lib 和 libpng.lib 存放的位置。

(2)去除 NO_PNG 预处理器定义

如果 NO_PNG 宏被定义,libzint 不会使用到 libpng 和 zlib,但是也无法保存为 .png 格式了。我们这里将 NO_PNG 宏去掉即可。
右键 -> 属性 -> C/C++ -> 预处理器 -> 预处理器定义 -> 找到 NO_PNG,删掉即可。

(3)Debug 版本需要添加 「附件依赖项」

libzint 右键属性 -> 链接器 -> 输入 -> 附加依赖项 -> 添加 libpng16.lib 和 zlib.lib。

(4)编译错误解决

右键项目 -> 生成后,出现如下错误:

这是缺少一个压缩比的宏定义,可能是我们用的3个库的版本不对应,没关系,这个宏定义网上都有介绍,我们手动添加一个:

#define Z_BEST_COMPRESSION      9 //压缩比优先

重新生成即可。

生成的库如下图所示:

至此,Zint库编译成功,关注我,下一篇说说Zint库怎么使用。

扫描二维码推送至手机访问。

版权声明:本文由第六芝士网发布,如需转载请注明出处。

本文链接:http://www.dgx666.com/post/2530.html

标签: vs2017下载
分享给朋友:

“使用VS2017编译条形码、二维码开源库Zint” 的相关文章

AMD显卡驱动又又又升级了 快来看看有啥新东西

在用AMD显卡的小伙伴一定知道,AMD显卡驱动差不多一个月一次的小更新已经持续了好几年,最近几年又开始每年更新一个大版本,在2019年的Adrenalin(肾上腺素)驱动还新鲜热乎的时候,2020年大改版就又来了。2020版的驱动仍然叫Adrenalin,只是名字里加了个“2020版”,那么它是不是...

公文字体探究:必须用仿宋_GB2312?

答:只规定了正文用仿宋,至于是仿宋、仿宋_GB2312、华文仿宋、方正仿宋还是仿宋GBK,则并没有强制规定,用哪一种都可以,只有习惯性运用。一、先简单说说公文字体的基本规定:标题为小标宋2号,与正文间空一行。正文为3号字,除了一级标题为黑体、二级标题为楷体以外,其他均为仿宋。页码居底部外端两侧,左右...

2014CAD激活后闪退,解决方法

之前在电脑上安装了一个CAD软件,是2014版的,平时用的很少,用的时候打开用用。昨天有个文件需要用CAD软件打开,提示需要激活,然后我在网上下载了一个激活工具,按照操作步骤,最终是激活成功了。我再次打开软件的时候,快到打开界面的时候直接退出了,试了好几次,都是这种情况,我搜索了一下,还真有人也遇到...

桌面备忘录电脑版怎么选?这几款超简洁又好用

在快节奏的现代生活中,一款好用的桌面备忘录软件不仅能帮助我们高效管理日常事务,还能提升我们的工作效率。今天,就为大家推荐几款超实用的桌面备忘录软件,它们各具特色,总有一款适合你。1. 敬业签:功能强大,多端同步敬业签是一款功能强大的桌面备忘录软件,支持多平台同步,包括Windows、Mac、安卓、苹...

找不到msvcp110.dll如何处理?三个办法快速解决!

Windows 操作系统在日常使用的电脑中广泛使用,越来越多的用户在使用电脑时遇到了计算机丢失 msvcr110.dll 的问题。msvcr110.dll丢失 是 Windows 操作系统中的一个动态链接库文件,它包含了许多常用的 C 运行库函数。当你的计算机丢失 msvcr110.dll 时,可能...

如何防范勒索病毒?做好防御措施有效解决

勒索病毒就像是一个小偷,它偷偷潜入你的电脑,找到你最重要的文件,并将其加密导致系统无法使用该文件而无法进行生产作业。然后再提醒你缴纳赎金,黑客收到赎金后再发密钥给你,让你自行解密。有时候,就算你缴纳了赎金也未必能够收到解密密钥。面对如此疯狂的病毒,我们该如何防范呢?其实,做好以下防御措施可以有效减少...