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

DMDECODER是一款比较好用的DM码解析软件,包含有一个DLL和一个lib,使用这个库也比较容易我们先看组成

使用该库第一步是导入库路径和库函数如下

//导入dll
#define DLL_EXPORT __declspec(dllexport) extern "C" DLL_EXPORT int _stdcall DataMatrix_decode(const char* filename);
// DataMatrix_decode_rt --> 对设备采集的图像进行实时处理
// imageData : 指向图像数据区的指针(24位位图)
// width : 图像宽度
// height : 图像高度
extern "C" DLL_EXPORT int _stdcall DataMatrix_decode_rt(unsigned char* imageData, int width, int height);
extern "C" DLL_EXPORT int _stdcall DataMatrix_output(unsigned char* message);

然后解码过程是这样的

char* file = (char*)malloc(sourceFilePath.GetLength()+);//待解码图片路径
for(int i = ; i < sourceFilePath.GetLength();i++)
{
file[i] = sourceFilePath.GetAt(i);
}
file[sourceFilePath.GetLength()] = ;
int length = DataMatrix_decode(file); //解码并返回码字长度(解码失败则返回-1)
if(length>)
{
unsigned char* message = (unsigned char*)malloc(sizeof(char)*(length+));
DataMatrix_output(message);//将解码码字保存到数组中
message[length] = ;
convertString.Empty();
convertString.AppendFormat("%s",message);
CString show;
show.Empty();
show = convertString.Left(convertString.GetLength()-);
((CEdit*)GetDlgItem(IDC_EDIT_COVERT_RESULT))->SetWindowText(show);
free(message);
}

完整的MFC工程如下

注意结果尾巴上的版权标志tonxong.com去掉哦

工程路径

http://download.csdn.net/detail/dengrengong/8608187

最新文章

  1. c# Sqlite帮助类
  2. const,static,extern简介(重要)
  3. iOS -Swift 3.0 -UIButton属性大全
  4. ADO.NET笔记——SQL注入攻击
  5. Codeforces Beta Round #85 (Div. 1 Only) A. Petya and Inequiations 贪心
  6. Android(java)学习笔记103:Map集合的获取功能
  7. C#数据等待
  8. 声明 &amp;&amp; 温馨提示 by ljh2000
  9. JS属性读写操作+if判断注意事项
  10. DSAPI之摄像头追踪指定颜色物体
  11. 1840: Jack Straws
  12. PC端的软件端口和adb 5037端口冲突解决方案
  13. [官网]How to use distributed transactions with SQL Server on Docker
  14. [luogu3391][文艺平衡树]
  15. java 程序运行过程 简介
  16. &lt;转&gt;jmeter(二十二)内存溢出原因及解决方法
  17. Sysstat的工具集sar、 iostat、mpstat、sadf、sar、sadc
  18. Tensorflow学习笔记一
  19. .NET面试题(一)
  20. 如何在shell中处理异常(转)

热门文章

  1. 静默方式安装window oracle
  2. Android OpenGL ES .介绍
  3. VideoView的视频播放
  4. margin
  5. 初探JavaScript魅力(四)
  6. HTTP的学习
  7. java 设计模式之单利模式以及代理模式(静态)
  8. leetcode202(Floyd判圈算法(龟兔赛跑算法))
  9. [转]学会Python可以有以下几类工作方向:
  10. time_wait和clost_wait说明