Delphi程序是非常优秀的开发工具,在引用二维条码控件(VC++开发)时,会遇到一些变量不对称的问题。许多开发人员在引用EnCodePdf.dll 动态链接库时,要注意如下几点:
- VOID类型接口,要申明成过程
DLL中原型接口是 void SetPdfConFile (LPCTSTR confile)
在DELPHI申明为: procedure SetPdfConFile(confile: PChar) : stdcall; external "EnCodePdf.dll"
2.LPCTSR/LPCSTR变量申明成PChar或string类型
function EnPdfText (txtdata:PChar,outfile:PChar):PChar; stdcall; external"EnCodePdf.dll"
3.BSTR变量应申明为PChar,这一点特别重要,有许多人申明成string类型,导致运行报错。
function EnCodePdf (Infile:PChar,outfile:PChar):PChar; stdcall; external "EnCodePdf.dll"
总结正确的引用与申明如下:
'初始化串口通信接口(hcallwnd是消息回调窗体,pathname是接收到信息存放的目录)
- function InitRead(hcallwnd:integer,pathname: PChar): integer; stdcall; external "EnCodePdf.dll"
'关闭串口通信
- function CloseRead(): integer; stdcall; external "EnCodePdf.dll"
'设置编码参数文件名(参数包含纠错级别、图形缩放比例和串口通信参数)
- procedure SetPdfConFile (confile: PChar) : stdcall; external "EnCodePdf.dll"
'将文本txtData内容编制成PDF条码文件(outfile),返回条码文件路径
- function EnPdfText (txtdata:PChar,outfile:PChar):PChar; stdcall; external "EnCodePdf.dll"
'将文本txtData内容编按照UTF8格式制成PDF条码文件(outfile),返回条码文件路径
- function EnPdfUTF8 (txtdata:PChar,outfile:PChar):PChar; stdcall; external "EnCodePdf.dll"
'将文件txtfile内容编制成PDF条码文件(outfile),返回条码文件路径
- function EnCodePdf (Infile:PChar,outfile:PChar): PChar; stdcall; external "EnCodePdf.dll"
'将文本、图像(压缩后)和其它文件内容编制成PDF条码文件(outfile),返回条码文件路径
- function MakePdf417 (txtfile:PChar, imgfile:PChar, othfile:PChar, outfile:PChar): PChar; stdcall; external "EnCodePdf.dll"
应用调用例子如下:
Pdfname:PChar;
SetQrConFile(PChar('D:\PDF417\MakeBarCode.ini'));
Pdfname:=EnPdfText(PChar(’HelloWord’), PChar(’c:\pdf417.bmp’));