在 Windows 下使用 VS2010 编译生成 qrencode,工作于命令行,读入文字,生成 QR 码的 png 图片。

在 Windows 下使用 VS2010 编译生成 qrencode,工作于命令行,读入文字,生成 QR 码的 png 图片。


在 Windows 下使用 VS2010 编译生成 qrencode,工作于命令行,读入文字,生成 QR 码的 png 图片。

 

组成:
qrencode 3.2.0
libpng 1.5.6
zlib 1.2.5
glibc 2.8 中 getopt 等文件


主要困难:
虽然开源二维码QR码编码库 qrencode 以 C 语言编写,
但工程管理及源码中使用 Linux 平台特性(此说法似乎不严谨),如 getopt_long 等;
以开源图形库 libpng 生成 png 图片,且 libpng 又使用开源 zlib 支持数据压缩,却未配上这两个库,似乎假设开发环境中已经安装,但我不想装。

 

我的工作:

使用 VS2010 创建 General, Empty Project ;

----为 qrencode 部分
将 qrencode 源码(仅 *.h,*.c)加入工程(不含test,use下的测试等部分代码);

在工程属性中定义宏 HAVE_CONFIG_H

将文件 config.h.in 更名为 config.h 加入工程;
根据 VS2010 的特性,修改 config.h 中的部分宏定义,并在文件末尾增加 #undef inline #define inline;


qrenc.c 中

snprintf 函数修改为 _snprintf 函数。

 


----为 png 部分
另外下载编译生成 libpng15 后(下载 zlib 还_得_翻_墙_),
将文件 png.h,pngconf.h,pnglibconf.h,libpng15.lib,libpng15.dll 加入工程,

将 qrenc.c 中
#include <png.h>
改为
#include "png.h"
#pragma comment( lib, "libpng15.lib" )


----为 getopt 部分

从 glibc 2.8 源码中取出 getopt 等文件,修改后加入工程(详见上一篇博文),

将 qrenc.c 中
#include <getopt.h>
改为
#include "getopt.h"


----其它

将 qrenc.c 中

if(strcasecmp(".png", q) == 0) {
改为
if((strcmp(".png", q) == 0) || (strcmp(".PNG", q) == 0)) {

 

----注意
运行需要 libpng15.dll 。
而且,libpng15.dll 和 qrencode 需要使用相同模式(Release,Debug);
我的是 Release 模式。

你可能感兴趣的:(在 Windows 下使用 VS2010 编译生成 qrencode,工作于命令行,读入文字,生成 QR 码的 png 图片。)