                                   QR dll使用说明
                    

   
   MakeQRBarcode.dll二维条码生成DLL，用以生成QR二维条码，适用于windows环境开发工具。
______________________________________________________________________________________________


//生成条码图片位图函数
(C++)
1)int __stdcall Make(unsigned char* ucData, long nDataLen,long nErrLevel,
long nMask, int nBarEdition, const char* szBmpFileName, long nScale)
参数说明:ucData         条码数据
			(支持二进制数据。可以打开文件，读取二进制，把该二进制字符串进进行编码
			如：CString filename = filedlg.GetPathName();
			    file.Read(szBuf, 1024);
  			    Make((BYTE*)szBuf, nDataLen, 1, 0, 0, "c:\\abc.bmp", 1);
			) 
	 nDataLen        条码数据长度(注:是字节数) 长度<=1K；
	 szBmpFileName  生成条码的图片文件名，BMP格式	 
	 nMask          掩模0-8,其中0表示自动生成；
	 nBarEdition 	0~40,0表示自动生成   
	 nErrLevel       纠错等级，取值范围0-3，建议取2-3；
	 nScale          缩放生成的BMP图像，1为最小的原始尺寸


	 返回值:0~41  	0表示失败  
			否则表示当前使用的版本值.
	                       
         以上参数的设置将直接影响条码的可读性和条码图片的大小。


如:
	HINSTANCE hInst;
	typedef int  (__stdcall *MAKE)(unsigned char* ucData, long nDataLen,long nErrLevel,
		long nMask, int nBarEdition, const char* szBmpFileName, long nScale);

	MAKE Make;


	hInst = LoadLibrary("MakeQRBarcode.dll");
	
	Make = (MAKE)GetProcAddress(hInst, "Make");	


	Make("海量HL", strlen("海量HL"), 
		 1, 0, 0, "c:\\abc.bmp", 1);


//文字信息和条码图片合成函数

2)int __stdcall MixText(const char* szSrcBmpFileName, 
		const char* szDstBmpFileName,
		char* szText,
		long lFontSize,
		long lTxtHeight,
		long lHmargin,
		long lVmargin,
		long lTxtCntOneLine)

参数说明:szSrcBmpFileName, 需要在下面加文字信息的BMP文件
	szDstBmpFileName, 加好文字后保存的BMP文件，可以与szSrcBmpFileName同名
	szText,需要添加的文字信息,可以为空
	lFontSize,字体尺寸，可以为0，代表根据lTxtHeight指定的文字区的高度，来自动创建字体
		  若不为0，则直接根据lFontSize创建字体，lTxtHeight将不起作用
	lTxtHeight,文字书写区的高度，若lFontSize为0，将自动根据这个高度创建字体
	lHmargin,文字水平方向(左边及右边）预留的空白象素,在lFontSize不为0时，右边预留的空白象素将不一定为
		lHmargin(因为字体并不是自适应的)
	lVmargin,文字垂直方向预留的空白象素
	lTxtCntOneLine,一行的字节数（注意：1个中文字算2个字节）,若为0，则把所有文字显示在一行，否则按照lTxtCntOneLine指定

lTxtHeight,lHmargin,lVmargin均为象素值


如:
	MixText("c:\\abc.bmp", "c:\\abc.bmp", "aadfasdfadsf", 0, 20
		, 10, 10, 0);


//生成0，1代表的条码图片数据
3)int __stdcall FlagMake(unsigned char* ucData, long nDataLen,long nErrLevel,
long nMask,int nBarEdition,BYTE* Buffer,int*BarSize)
描述：
	此函数用来生成0，1代表的条码图片数据，0表示黑色，1表示白色.
	先将Buffer置成NULL传入，BarSize将返回实际需要的QR正方形图形的边长，然后再将
	Buffer分配BarSize*BarSize空间长度（BYTE），传入，函数将0，1按一个BYTE代表一个点，
	从上到下，从左到右的顺序，填充Buffer空间内的数据.

参数说明:ucData         条码数据 
	 nDataLen        条码数据长度(注:是字节数) 长度<=1K；
	 nMask          掩模0-8,其中0表示自动生成；
	 nBarEdition 	0~40,0表示自动生成   
	 nErrLevel       纠错等级，取值范围0-3，建议取2-3；
	 Buffer		填充0，1的缓冲区(0表示黑色，1表示白色)，需由调用放分配，空间长度根据BarSize决定（BarSize×BarSize）
	 BarSize	QR正方形图形的边长	


	 返回值:0~41  	0表示失败  
			否则表示当前使用的版本值.
	                       

如:
	int nBarWidth = 0;
	BYTE* byBarDataBuffer = NULL;	
	FlagMake("海量HL", strlen("海量HL"), 
		 1, 0, 0, byBarDataBuffer , &nBarWidth);
	byBarDataBuffer = new BYTE[nBarWidth*nBarWidth];
	FlagMake("海量HL", strlen("海量HL"), 
		 1, 0, 0, byBarDataBuffer , &nBarWidth);
	//.... USE IT
	delete	byBarDataBuffer;


//将条码图片生成到缓存中
void __stdcall MakeToBuffer(unsigned char* ucData, long nDataLen,long nErrLevel,
long nMask, int nBarEdition,  long nScale,char ** ppBuffer, long* pBufferLen)
参数说明:ucData         条码数据
			(支持二进制数据。可以打开文件，读取二进制，把该二进制字符串进进行编码
			如：CString filename = filedlg.GetPathName();
			    file.Read(szBuf, 1024);
  			    Make((BYTE*)szBuf, nDataLen, 1, 0, 0, "c:\\abc.bmp", 1);
			) 
	 nDataLen        条码数据长度(注:是字节数) 长度<=1K；	 
	 nMask          掩模0-8,其中0表示自动生成；
	 nBarEdition 	0~40,0表示自动生成   
	 nErrLevel       纠错等级，取值范围0-3，建议取2-3；
	 nScale          缩放生成的BMP图像，1为最小的原始尺寸

	ppBuffer   	传出用,存放生成条码的BMP个数文件数据
	 pBufferLen	传出用,返回*ppBuffer所指缓冲区的长度
说明:   *ppBuffer  所指缓冲区空间由函数内部根据实际图片大小,动态分配,使用完此函数后,至少调用
	FreeBuffer一次,来释放空间

	 
//释放条码图片缓存
(C++)
void __stdcall FreeBuffer(char* pBuffer)		 
说明:
	释放MakeToBuffer函数内部所分配的空间



//支持jpg(jpeg) png bmp格式之间的互相转化

int ConvertPicType(char* sz_InFile, char* sz_OutFile)
参数说明：sz_InFile 输入图片文件名
	  sz_OutFile 输出图片文件名
返回值：1 成功 0 失败

例子：ConvertPicType("e:\\1.bmp","e:\\2.jpg");


__________________________________________________________________________________________________

(VB)
Private Declare Sub Make Lib "MakeQRBarcode.dll" _
(ucData As Byte, ByVal nLen As Long, ByVal nErr As Long, ByVal nMask As Long, 
ByVal nBarEdition As Long,ByVal szFileName As String, ByVal nScale As Long)


如:
Dim a() As Byte
a = StrConv(Text1.Text, vbFromUnicode)
Make a(0), UBound(a) - LBound(a) + 1, 1, 1, 0, "abc.bmp", 5



演示版限制：
1、nDataLen 条码数据长度(是字节数) 长度<=20字节数；
2、nErr 纠错等级固定为1；
3、szBmpFileName 生成条码的图片文件，将随机插入"海量条码"符号串。
4、条码下显示文字长度限制为8字节



