一、瞎想  

  坐在地铁上闲来无聊,突然想到了二维码,顺手就百度了下相关的资料,目前C++二维码相关的库不多,也就zbar(开源中国上下了半天也没下载下来)、zxing,不过这两个库据说都是解析二维码的,不能生成二维码,这个是对于C++而言,如果你是搞C#或者java的,那么恭喜你,你可以直接使用zxing库来完成生成和解析二维码,具体参看

二、二维码生成工具

  这里我给大家介绍一个二维码生成工具,效果如图1所示,从图中就可以看出二维码的工具名称。

图1 二维码展示

关于二维码中间的图片,其实是贴上去的,因为二维码有容错能力,因此添加一张小的图片不影响解析效果。如图2所示,从安装文件来看这个开源的工具其实也是使用了zxing库来生产和解析二维码,这个和文章前面的描述有出入。具体zxing到底能否生产二维码个人没有经过验证,本片文章旨在讲述各个库的编译过程,因此对这个问题不做结论

图2 安装文件列表

三、QZXing编译

  QZXing是基于qt将zxing进行了封装,那么此小节我就直接讲述QZXing的编译过程。

  1. 首先从SourceForge.net上下载QZXZing源码,并解压
  2. 使用qmake命令将pro文件转化为sln(1、qmake QZXing.pro  2、qmake -tp v -r)
  3. 使用vs打开sln文件进行编译,最终生成相关的dll、lib和pdb文件,如图3所示,我只展示了release下生成的文件

图3 QZXing编译结果

四、qrencode-3.1.0编译

  C++下基于qrencode可以进行生成二维码,我是参考了几篇文章进行编译,文章列表如下:

  VS2010 编译完整 libqrencode 细节

  vc2010 编译 qrencode

  上述两篇文章都是讲述的自建vs工程来编译qrencode源码,但是细节有所差别,其中主要是qrenc.c文件是否添加到工程,如下编译步骤是我按照这两篇文章的理解所实践出来的编译步骤

  编译步骤:

  1. 从github上下载qrencode源码并解压
  2. 新建win32工程,并设置工程为lib库,不使用预编译头文件
  3. 把qrencode直接目录下的所有.h和.c(除过qrenc.c)文件添加到该工程,其中将config.h.in改为config.h,并修改rscode.c源码,modnn函数去掉inline关键字
  4. 修改qrspec.c文件,将strdup替换为_strdup,这是两两篇文章中都没有提到的,我是根据错误提示找到了解决办法,参看The posix name for this item is deprecated in VC++ 2008
  5. 编译结果如图4所示

图4 qrencode编译结果

五、ZBar Code

  这个库可以上SourceForge.net直接下载,包含dll和lib文件,我下载后的解压文件如图5

图5 zbar库

六、使用

  这几个库的使用都比较简单,我在这里就给出几个个人觉得靠谱的使用链接

  1. libqr--简单好用的c++二维码生成库 :libqr使用

  2. 使用QZXing识别图片二维码:QZXing使用
  3. QR code二维码简介及Qrencode库的移植与使用 :qrendcode使用

七、相关链接

  strdup 和 _strdup 的使用及区别

注:关于使用后续有时间我会补充一个小示例

C++二维码相关库编译的更多相关文章

  1. Javascript 二维码生成库:QRCode

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 二维码相关---java生成二维码名片,而且自己主动保存到手机通讯录中...

    版权声明:本文为博主原创文章,未经博主credreamer 同意不得转载 违者追究法律责任. https://blog.csdn.net/lidew521/article/details/244418 ...

  3. 二维码开源库ZBar-MDK STM32F429移植

    前两篇文章已经实现ZBar在Windows平台下的编译和使用,本文将介绍如何把ZBar移植到STM32F429,IDE使用MDK. 1. MDK工程设置 (1)不勾选Use MicroLIB ,使用I ...

  4. 二维码开源库zbar、zxing使用心得

    首先说明我的测试场景是“识别打印在纸上的二维码”,在扫描结果中寻找二维码并进行识别,而不是直接让摄像头对着二维码扫描. zbar和zxing用的都是自己从github上clone的c++源码/接口编译 ...

  5. 二维码开源库ZBar-实现中文解码

    中文乱码 上篇<ZBar-windows下编译和使用>已经成功解析了条形码,但目标是二维码,经测试二维码中文会出现乱码.下图二维码的内容是"http123测试456", ...

  6. 二维码开源库ZBar-吐槽篇

    前不久在网上看到一篇文章<QR-Decoder-OV5640 二维码识别> ,是某开发板的教程.记得对应的开发板以前购买过,当初只是为了看OV5640的JPG的输出效果,结果由于公司奇葩的 ...

  7. 分享一个js生成二维码的库

    二维码用js生成会比用服务器生成方便很多,只要把window.location.href的值传入,即可生成对应的二维码..最主要是,这个库可以兼容ie6~ie9哦... 具体使用,请看官网:http: ...

  8. DM二维码识别库DMDECODER的使用--MFC例程

    DM码和QR码是当今比较主流的二维码,其中QR码容量大,容量密度为16kb,DM码容量要小一点,可在仅仅25mm²的面积上编码30个数字,但是DM码的容错率更高,所以实际的工业生产中经常使用DM码作为 ...

  9. 二维码生成库phpqrcode使用小结

    <img src="data:image/png;base64,这里是base64编码内容" /> 只需要里边的phpqrcode.php这一个文件就可以生成二维码了 ...

随机推荐

  1. ASP.NET 4.5.256 has not been registered on the Web server. You need to manually configure your Web server for ASP.NET 4.5.256 in order for your site to run correctly

    Microsoft .NET Framework 4.6安装后,用户可能会在使用Microsoft Visual Studio 创建(或打开现有项目时)网站.或Windows Azure项目时遇到下面 ...

  2. JQuery图片轮播滚动效果(网页效果--每日一更)

    今天,带来的是一个图片的轮播滚动效果! 先来看一下效果展示:亲,请点击这里 原理很简单,设置一个定时器,使图片列表在每隔一段时间后滚动一次.而循环效果,就是在每一滚动的时候,将第一张图片放到最后一张的 ...

  3. 我的ORM之八-- 事件

    我的ORM索引 dbo.Event 需要新建一个类,继承:IDboEvent,并设置给:dbo.Event,如: dbo.Event = MyOqlEvent.GetInstance(); 在 IDb ...

  4. MySQL6:触发器

    什么是触发器 MySQL的触发器(trigger)和存储过程一样,都是嵌入到MySQL中的一段程序.触发器是由事件来触发某个操作,这些事件包括INSERT.UPDATE和DELETE语句.如果定义了触 ...

  5. 四则运算的实现(C++)重做

    #include <iostream> using namespace std; void main() { int a0[1000],b0[1000],c0[1000],a1[1000] ...

  6. 在GitHub注册账户的过程

    (1)第一步:首先起一个属于自己用户的名字(username),用户名字只能包含字母数字的字符或者单个连字符,不能只用单个连字符开始或者结束(only contain alphanumeric cha ...

  7. Portal.MVC —— nopcommerce的简化版

    Portal.MVC 简介 项目是基于MVC4+EF,带有角色,权限,用户中心及账户相关(登录,注册,修改密码,找回密码等)等基本功能.参考的开源项目 nopcommerce,这是一个电商架构的MVC ...

  8. 【译】用Fragment解决屏幕旋转(状态发生变化)状态不能保持的问题

    这篇文章解决了在StackOverflow上一个经常被提到的问题. 在配置发生变化(Configuration changs)时,什么是最好的保存活动对象方法,比如运行中的线程,Sockets,Asy ...

  9. channel vs mutex

    记录许总演讲PPT指出的实践: channel– 本质上是一个 MessageQueue– 非常正统的执行体间通讯设施• sync.Mutex/RWMutex/Cond/etc– 不要把 channe ...

  10. IT传统组织结构及新型扁平化组织

    如今互联网企业正凶猛的改变人们衣食住行的方方面面,衣->淘宝,蘑菇街;食->大众点评,口碑;住->去哪,途牛:行->12306, 多次听到互联网的同行介绍他们就是要“快”,快速 ...