Windows环境编译和使用qrencode
Libqrencode是一个快速而紧凑的库,用于编码QR Code符号中的数据,QR Code符号是一种2D符号,可以由手持终端(如带有CCD的手机)扫描。二维码的容量最高可达7000位或4000个字符,具有很强的鲁棒性。
Libqrencode接受字符串或数据块列表,然后将QR Code符号编码为位图数组。当其他QR Code应用程序生成图像文件时,使用libqrencode允许应用程序直接从原始位图数据呈现QR Code符号。此库还包含一个命令行实用程序,用于输出各种格式的二维码图像。
本文将介绍在Windows环境编译和使用qrencode。
一、cmake编译qrencode源码
下载libqrencode源码
下载地址:https://fukuchi/works/qrencode/
解压源码并建立build文件夹
编译静态库(.lib)
1、打开cmake-gui
2、选择源码目录
3、选择build目录
4、Configure
首次Configure会提示错误:
点击OK后,取消勾选WITH_TOOLS,不进行tools编译
重新Configure
5、Generate
cmake编译完成后,在build目录下生成Visual Studio的工程文件
6、双击QRencode.sln,打开VS工程
7、Release编译
在”解决方案任务管理器“选择ALL_BUILD生成
编译完成后在build\Release目录下可以找到生成的lib库
编译动态库(.dll)
编译动态库的流程和编译动态库时一样,只是在cmake Configure的时候勾选BUILD_SHARED_LIBS选项,最终就可以生成dll了。
最终生成的动态库:
二、使用Visual Studio调用libqrencode生成二维码
新建一个VS控制台新项目qrtest
建立项目后建立demo.cpp作为主程序文件,拷贝qrencode.h到工程目录,配置依赖qrencode.lib。
代码
#include "qrencode.h"
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef signed long LONG;
#define BI_RGB 0L
#pragma pack(push, 2)
typedef struct
{
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;
typedef struct
{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
Windows环境编译和使用qrencode
Libqrencode是一个快速而紧凑的库,用于编码QR Code符号中的数据,QR Code符号是一种2D符号,可以由手持终端(如带有CCD的手机)扫描。二维码的容量最高可达7000位或4000个字符,具有很强的鲁棒性。
Libqrencode接受字符串或数据块列表,然后将QR Code符号编码为位图数组。当其他QR Code应用程序生成图像文件时,使用libqrencode允许应用程序直接从原始位图数据呈现QR Code符号。此库还包含一个命令行实用程序,用于输出各种格式的二维码图像。
本文将介绍在Windows环境编译和使用qrencode。
一、cmake编译qrencode源码
下载libqrencode源码
下载地址:https://fukuchi/works/qrencode/
解压源码并建立build文件夹
编译静态库(.lib)
1、打开cmake-gui
2、选择源码目录
3、选择build目录
4、Configure
首次Configure会提示错误:
点击OK后,取消勾选WITH_TOOLS,不进行tools编译
重新Configure
5、Generate
cmake编译完成后,在build目录下生成Visual Studio的工程文件
6、双击QRencode.sln,打开VS工程
7、Release编译
在”解决方案任务管理器“选择ALL_BUILD生成
编译完成后在build\Release目录下可以找到生成的lib库
编译动态库(.dll)
编译动态库的流程和编译动态库时一样,只是在cmake Configure的时候勾选BUILD_SHARED_LIBS选项,最终就可以生成dll了。
最终生成的动态库:
二、使用Visual Studio调用libqrencode生成二维码
新建一个VS控制台新项目qrtest
建立项目后建立demo.cpp作为主程序文件,拷贝qrencode.h到工程目录,配置依赖qrencode.lib。
代码
#include "qrencode.h"
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef signed long LONG;
#define BI_RGB 0L
#pragma pack(push, 2)
typedef struct
{
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;
typedef struct
{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;