Delphi 为什么从winppla.dll调用函数A_GetUSBBufferLen()不';你不在东京德尔福工作吗?
我正在尝试在Windows 10中使用Argox打印机OS-214 Plus。我已连接打印机,Windows 10已识别,但尚未安装任何驱动程序 我已从路径Delphi 为什么从winppla.dll调用函数A_GetUSBBufferLen()不';你不在东京德尔福工作吗?,delphi,dll,thermal-printer,delphi-10.2-tokyo,Delphi,Dll,Thermal Printer,Delphi 10.2 Tokyo,我正在尝试在Windows 10中使用Argox打印机OS-214 Plus。我已连接打印机,Windows 10已识别,但尚未安装任何驱动程序 我已从路径下载并提取了Delphi 2009示例。\n命令库V409\PPLA\example\Win32\Delphi\u 2009。有一个名为release的文件夹,其中包含一个名为Delphi_2009.exe的编译exe。我放入了release从中提取的dllWinPort.dll和Winppla.dll。\Command Library V4
下载并提取了Delphi 2009示例。\n命令库V409\PPLA\example\Win32\Delphi\u 2009
。有一个名为release
的文件夹,其中包含一个名为Delphi_2009.exe的编译exe
。我放入了release
从中提取的dllWinPort.dll
和Winppla.dll
。\Command Library V409\PPLA\Library\32位
。最后,我运行了Delphi_2009.exe
,它按预期工作,在打印前显示以下消息:
因此,我尝试在Delphi Tokyo中运行下面的示例:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var dpCrLf : AnsiString = chr(13)+chr(10);
var szSavePath : String = 'C:\Argox';
var szSaveFile : AnsiString = 'C:\Argox\PPLA_Example.Prn';
var sznop1 : AnsiString = 'nop_front' + Chr(13) + chr(10);
var sznop2 : AnsiString = 'nop_middle' + Chr(13) + chr(10);
function A_Bar2d_Maxi(x:integer; y:integer; primary:integer; secondary:integer; country:integer;
service:integer; mode:char; numeric:integer; data:AnsiString):integer;stdcall;
external 'WINPPLA.DLL';
function A_Bar2d_Maxi_Ori(x:integer; y:integer; ori:integer; primary:integer; secondary:integer;
country:integer; service:integer; mode:char; numeric:integer; data:AnsiString):integer;
stdcall;external 'WINPPLA.DLL';
function A_Bar2d_PDF417(x:integer; y:integer; narrow:integer; width:integer; normal:char;
security:integer; aspect:integer; row:integer; column:integer; mode:char;
numeric:integer; data:AnsiString):integer;stdcall;external 'WINPPLA.DLL';
function A_Bar2d_PDF417_Ori(x:integer; y:integer; ori:integer; narrow:integer; width:integer;
normal:char; security:integer; aspect:integer; row:integer; column:integer; mode:char;
numeric:integer; data:AnsiString):integer;stdcall;external 'WINPPLA.DLL';
function A_Bar2d_DataMatrix(x:integer; y:integer; rotation:integer; hor_mul:integer;
ver_mul:integer; ECC:integer; data_format:integer; num_rows:integer; num_col:integer;
mode:char; numeric:integer; data:AnsiString):integer;stdcall;external 'WINPPLA.DLL';
Procedure A_Clear_Memory();stdcall;external 'WINPPLA.DLL';
Procedure A_ClosePrn();stdcall;external 'WINPPLA.DLL';
function A_CreatePrn(selection:integer; filename:AnsiString):integer;stdcall;
external 'WINPPLA.DLL';
function A_Del_Graphic(mem_mode:integer; graphic:AnsiString):integer;stdcall;external 'WINPPLA.DLL';
function A_Draw_Box(mode:char; x:integer; y:integer; width:integer; height:integer; top:integer;
side:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Draw_Line(mode:char; x:integer; y:integer; width:integer; height:integer):integer;
stdcall;external 'WINPPLA.DLL';
Procedure A_Feed_Label();stdcall;external 'WINPPLA.DLL';
function A_Get_DLL_Version(nShowMessage:integer):PAnsiChar;stdcall;external 'WINPPLA.DLL';
function A_Get_DLL_VersionA(nShowMessage:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Get_Graphic(x:integer; y:integer; mem_mode:integer; format:char; filename:AnsiString):integer;
stdcall;external 'WINPPLA.DLL';
function A_Get_Graphic_ColorBMP(x:integer; y:integer; mem_mode:integer; format:char;
filename:AnsiString):integer;stdcall;external 'WINPPLA.DLL';
function A_Get_Graphic_ColorBMPEx(x:integer; y:integer; nWidth:integer; nHeight:integer;
rotate:integer; mem_mode:integer; format:char; id_name:AnsiString; filename:AnsiString):integer;
stdcall;external 'WINPPLA.DLL';
function A_Get_Graphic_ColorBMP_HBitmap(x:integer; y:integer; nWidth:integer; nHeight:integer;
rotate:integer; mem_mode:integer; format:char; id_name:AnsiString; hbm:HBITMAP):integer;
stdcall;external 'WINPPLA.DLL';
function A_Initial_Setting(Type_Renamed:integer; Source:AnsiString):integer;stdcall;
external 'WINPPLA.DLL';
function A_WriteData(IsImmediate:integer; pbuf:AnsiString; length:integer):integer;stdcall;
external 'WINPPLA.DLL';
function A_ReadData(pbuf:PAnsiChar; length:integer; dwTimeoutms:integer):integer;stdcall;
external 'WINPPLA.DLL';
function A_Load_Graphic(x:integer; y:integer; graphic_name:AnsiString):integer;stdcall;
external 'WINPPLA.DLL';
function A_Open_ChineseFont(path:AnsiString):integer;stdcall;external 'WINPPLA.DLL';
function A_Print_Form(width:integer; height:integer; copies:integer; amount:integer;
form_name:AnsiString):integer;stdcall;external 'WINPPLA.DLL';
function A_Print_Out(width:integer; height:integer; copies:integer; amount:integer):integer;
stdcall;external 'WINPPLA.DLL';
function A_Prn_Barcode(x:integer; y:integer; ori:integer; type_Renamed:char; narrow:integer;
width:integer; height:integer; mode:char; numeric:integer; data:AnsiString):integer;
stdcall;external 'WINPPLA.DLL';
function A_Prn_Text(x:integer; y:integer; ori:integer; font:integer; type_Renamed:integer;
hor_factor:integer; ver_factor:integer; mode:char; numeric:integer; data:AnsiString):integer;
stdcall;external 'WINPPLA.DLL';
function A_Prn_Text_Chinese(x:integer; y:integer; fonttype:integer; id_name:AnsiString; data:AnsiString;
mem_mode:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Prn_Text_TrueType(x:integer; y:integer; FSize:integer; FType:AnsiString; Fspin:integer;
FWeight:integer; FItalic:integer; FUnline:integer; FStrikeOut:integer; id_name:AnsiString;
data:AnsiString; mem_mode:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Prn_Text_TrueType_W(x:integer; y:integer; FHeight:integer; FWidth:integer;
FType:AnsiString; Fspin:integer; FWeight:integer; FItalic:integer; FUnline:integer;
FStrikeOut:integer; id_name:AnsiString; data:AnsiString; mem_mode:integer):integer;
stdcall;external 'WINPPLA.DLL';
function A_Set_Backfeed(back:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_BMPSave(nSave:integer; pstrBMPFName:AnsiString):integer;stdcall;
external 'WINPPLA.DLL';
function A_Set_Cutting(cutting:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_Darkness(heat:UINT):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_DebugDialog(nEnable:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_Feed(rate:char):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_Form(formfile:AnsiString; form_name:AnsiString; mem_mode:integer):integer;stdcall;
external 'WINPPLA.DLL';
function A_Set_Margin(position:integer; margin:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_Prncomport(baud:integer; parity:integer; data:integer; stop:integer):integer;
stdcall;external 'WINPPLA.DLL';
function A_Set_Prncomport_PC(nBaudRate:integer; nByteSize:integer; nParity:integer;
nStopBits:integer; nDsr:integer; nCts:integer; nXonXoff:integer):integer;stdcall;
external 'WINPPLA.DLL';
function A_Set_Sensor_Mode(type_Renamed:char; continuous:integer):integer;stdcall;
external 'WINPPLA.DLL';
function A_Set_Speed(speed:char):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_Syssetting(transfer:integer; cut_peel:integer; length:integer; zero:integer;
pause:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_Unit(unit_Renamed:char):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_Gap(gap:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_Logic(logic:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_ProcessDlg(nShow:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_ErrorDlg(nShow:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_LabelVer(centiInch:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_GetUSBBufferLen():integer;stdcall;external 'WINPPLA.DLL';
function A_EnumUSB(buf:PAnsiChar):integer;stdcall;external 'WINPPLA.DLL';
function A_CreateUSBPort(nPort:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_CreatePort(nPortType:integer; nPort:integer; filename:AnsiString):integer;stdcall;
external 'WINPPLA.DLL';
function A_Clear_MemoryEx(nMode:integer):integer;stdcall;external 'WINPPLA.DLL';
Procedure A_Set_Mirror();stdcall;external 'WINPPLA.DLL';
function A_Bar2d_RSS(x:integer; y:integer; ori:integer; ratio:integer; height:integer;
rtype:char; mult:integer; seg:integer; data1:AnsiString; data2:AnsiString):integer;stdcall;
external 'WINPPLA.DLL';
function A_Bar2d_QR_M(x:integer; y:integer; ori:integer; mult:char; value:integer; model:integer;
error:char; mask:integer; dinput:char; mode:char; numeric:integer; data:AnsiString):integer;
stdcall;external 'WINPPLA.DLL';
function A_Bar2d_QR_A(x:integer; y:integer; ori:integer; mult:char; value:integer; mode:char;
numeric:integer; data:AnsiString):integer;stdcall;external 'WINPPLA.DLL';
function A_GetNetPrinterBufferLen():integer;stdcall;external 'WINPPLA.DLL';
function A_EnumNetPrinter(buf:PAnsiChar):integer;stdcall;external 'WINPPLA.DLL';
function A_CreateNetPort(nPort:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Prn_Text_TrueType_Uni(x:integer; y:integer; FSize:integer; FType:AnsiString; Fspin:integer;
FWeight:integer; FItalic:integer; FUnline:integer; FStrikeOut:integer; id_name:AnsiString;
data:PWideChar; format:integer; mem_mode:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_Prn_Text_TrueType_UniB(x:integer; y:integer; FSize:integer; FType:AnsiString; Fspin:integer;
FWeight:integer; FItalic:integer; FUnline:integer; FStrikeOut:integer; id_name:AnsiString;
data:PWideChar; format:integer ; mem_mode:integer):integer;stdcall;external 'WINPPLA.DLL';
function A_GetUSBDeviceInfo(nPort:integer; pDeviceName:PAnsiChar; pDeviceNameLen:PInteger;
pDevicePath:PAnsiChar; pDevicePathLen:PInteger):integer;stdcall;external 'WINPPLA.DLL';
function A_Set_EncryptionKey(encryptionKey:AnsiString):integer;stdcall;external 'WINPPLA.DLL';
function A_Check_EncryptionKey(decodeKey:AnsiString; encryptionKey:AnsiString;
dwTimeoutms:integer):integer;stdcall;external 'WINPPLA.DLL';
procedure TForm1.Button1Click(Sender: TObject);
var
ret,nLen,sw : integer;
pbuf : array[0..127] of AnsiChar;
ver : PAnsiChar;
strmsg : string;
len1,len2 : integer;
buf1,buf2 : AnsiString;
buff1 : array[0..127] of WideChar;
himage : HBITMAP;
begin
// Test code start
// open port.
// dll version.
ver := A_Get_DLL_Version(0);
// search port.
nLen := A_GetUSBBufferLen() + 1;
strmsg := 'DLL ' + ver + dpCrLf; // only sample coding, not smart.
If nLen > 1 then
begin
len1 := 128;
len2 := 128;
SetLength(buf1,len1);
SetLength(buf2,len2);
A_EnumUSB(pbuf);
A_GetUSBDeviceInfo(1, PAnsiChar(buf1), @len1, PAnsiChar(buf2), @len2);
sw := 1;
If 0 < sw then
ret := A_CreatePrn(12, PAnsiChar(buf2)) // open usb.
else
ret := A_CreateUSBPort(1); // must call A_GetUSBBufferLen() function fisrt.
If 0 < ret then
strmsg := strmsg + 'Open USB fail!'
else
begin
SetLength(buf1,len1);
SetLength(buf2,len2);
strmsg := strmsg + 'Open USB:' + dpCrLf+ 'Device name: ';
strmsg := strmsg + buf1;
strmsg := strmsg + dpCrLf+ 'Device path: ';
strmsg := strmsg + buf2;
//sw := 2;
If 2 = sw then
begin
//get printer status.
pbuf[0] := #$01;
pbuf[1] := #$46;
pbuf[2] := #$0D;
pbuf[3] := #$0A;
A_WriteData(1, pbuf, 4); //<SOH>F
ret := A_ReadData(pbuf, 2, 1000);
end;
end;
end
else
begin
CreateDirectory(PChar(szSavePath), nil);
ret := A_CreatePrn(0, szSaveFile); // open file.
strmsg := strmsg + 'Open ' + szSaveFile;
if 0 < ret then
strmsg := strmsg + ' file fail!'
else
strmsg := strmsg + ' file succeed!';
end;
ShowMessage(strmsg);
If 0 < ret then
exit;
// sample setting.
A_Set_DebugDialog(1);
A_Set_Unit('n');
A_Set_Syssetting(1, 0, 0, 0, 0);
A_Set_Darkness(8);
A_Del_Graphic(1, '*'); // delete all picture.
A_Clear_Memory(); // clear memory.
A_WriteData(0, sznop2, StrLen(PAnsiChar(sznop2)));
A_WriteData(1, sznop1, StrLen(PAnsiChar(sznop1)));
// draw box.
A_Draw_Box('A', 10, 10, 380, 280, 4, 4);
A_Draw_Line('A', 200, 10, 4, 280);
// print text, true type text.
A_Prn_Text(20, 30, 1, 2, 0, 1, 1, 'N', 2, 'PPLA Lib Example');
A_Prn_Text_TrueType(20, 60, 30, 'Arial', 1, 400, 0, 0, 0, 'AA', 'TrueType Font', 1); // save in ram.
A_Prn_Text_TrueType_W(20, 90, 20, 20, 'Times New Roman', 1, 400, 0, 0, 0, 'AB', 'TT_W: 多字元測試', 1);
StringToWideChar('TT_Uni: 多字元測試', buff1, 128); // Converts double-byte characters to UNICODE(wide characters).
buff1[13] := #$0000; // null.
A_Prn_Text_TrueType_Uni(20, 120, 30, 'Times New Roman', 1, 400, 0, 0, 0, 'AC', buff1, 1, 1); // UTF-16
buff1[0] := #$FEFF; // UTF-16.
StringToWideChar('TT_UniB: 多字元測試', buff1+1, 128); // Converts double-byte characters to UNICODE(wide characters).
buff1[15] := #$0000; // null.
A_Prn_Text_TrueType_UniB(20, 150, 30, 'Times New Roman', 1, 400, 0, 0, 0, 'AD', buff1, 0, 1); // Byte Order Mark.
// barcode.
A_Prn_Barcode(220, 60, 1, 'A', 0, 0, 20, 'B', 1, '1234');
A_Bar2d_QR_A(220, 100, 1, '3', 10, 'N', 0, 'QR CODE');
// picture.
A_Get_Graphic_ColorBMP(220, 150, 1, 'B', 'bb.bmp'); // Color bmp file to ram.
A_Get_Graphic_ColorBMPEx(220, 170, 200, 150, 2, 1, 'B', 'bb1', 'bb.bmp');//180 angle.
himage := LoadImage(0,'bb.bmp',IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
A_Get_Graphic_ColorBMP_HBitmap(300, 150, 250, 80, 1, 1, 'B', 'bb2', himage);//90 angle.
If 0 <> himage then
DeleteObject(himage);
// output.
A_Print_Out(1, 1, 2, 1); // copy 2.
// close port.
A_ClosePrn();
end;
end.
单元1;
接口
使用
窗口、消息、系统工具、变体、类、图形、控件、窗体、,
对话框,stdctrl;
类型
TForm1=类(TForm)
按钮1:t按钮;
程序按钮1点击(发送方:ToObject);
私有的
{私有声明}
公众的
{公开声明}
结束;
变量
表1:TForm1;
实施
{$R*.dfm}
var-dpCrLf:AnsiString=chr(13)+chr(10);
var szSavePath:String='C:\Argox';
var szSaveFile:AnsiString='C:\Argox\PPLA_Example.Prn';
变量sznop1:AnsiString='nop_front'+Chr(13)+Chr(10);
变量sznop2:AnsiString='nop_middle'+Chr(13)+Chr(10);
函数A_Bar2d_Maxi(x:整数;y:整数;主:整数;次:整数;国家:整数;
服务:整数;模式:字符;数字:整数;数据:AnsiString):整数;stdcall;
外部“WINPPLA.DLL”;
函数A_Bar2d_Maxi_Ori(x:integer;y:integer;Ori:integer;primary:integer;secondary:integer;
国家/地区:整数;服务:整数;模式:字符;数字:整数;数据:AnsiString):整数;
stdcall;外部“WINPPLA.DLL”;
函数A_Bar2d_PDF417(x:integer;y:integer;窄:integer;宽:integer;法线:char;
安全性:整数;方面:整数;行:整数;列:整数;模式:字符;
数值:整数;数据:AnsiString):整数;stdcall;外部“WINPPLA.DLL”;
函数A_Bar2d_PDF417_Ori(x:整数;y:整数;Ori:整数;窄:整数;宽:整数;
普通:字符;安全性:整数;方面:整数;行:整数;列:整数;模式:字符;
数值:整数;数据:AnsiString):整数;stdcall;外部“WINPPLA.DLL”;
函数A_Bar2d_DataMatrix(x:integer;y:integer;旋转:integer;hor_mul:integer;
ver_mul:integer;ECC:integer;数据格式:integer;num_行:integer;num_列:integer;
模式:字符;数字:整数;数据:AnsiString):整数;stdcall;外部“WINPPLA.DLL”;
程序A_清除_内存();stdcall;外部“WINPPLA.DLL”;
程序A_ClosePrn();stdcall;外部“WINPPLA.DLL”;
函数A_CreatePrn(选择:整数;文件名:AnsiString):整数;stdcall;
外部“WINPPLA.DLL”;
函数A_Del_图形(mem_模式:整数;图形:AnsiString):整数;stdcall;外部“WINPPLA.DLL”;
函数A_绘制框(模式:字符;x:整数;y:整数;宽度:整数;高度:整数;顶部:整数;
边:整数):整数;stdcall;外部“WINPPLA.DLL”;
函数A_绘制线(模式:字符;x:整数;y:整数;宽度:整数;高度:整数):整数;
stdcall;外部“WINPPLA.DLL”;
程序A_进给_标签();stdcall;外部“WINPPLA.DLL”;
函数A_Get_DLL_Version(nShowMessage:integer):PAnsiChar;stdcall;外部“WINPPLA.DLL”;
函数A_Get_DLL_VersionA(nShowMessage:integer):integer;stdcall;外部“WINPPLA.DLL”;
函数A_Get_Graphic(x:integer;y:integer;mem_mode:integer;格式:char;文件名:AnsiString):integer;
stdcall;外部“WINPPLA.DLL”;
函数A_Get_Graphic_ColorBMP(x:integer;y:integer;mem_mode:integer;format:char;
文件名:AnsiString):整数;stdcall;外部“WINPPLA.DLL”;
函数A_Get_Graphic_ColorBMPEx(x:integer;y:integer;nWidth:integer;nHeight:integer;
旋转:整数;内存模式:整数;格式:字符;id\u名称:AnsiString;文件名:AnsiString):整数;
stdcall;外部“WINPPLA.DLL”;
函数A_Get_Graphic_ColorBMP_HBitmap(x:integer;y:integer;nWidth:integer;nHeight:integer;
旋转:整数;内存模式:整数;格式:字符;id\u名称:AnsiString;hbm:HBITMAP):整数;
stdcall;外部“WINPPLA.DLL”;
函数A_初始_设置(类型_重命名为:integer;源:AnsiString):integer;stdcall;
外部“WINPPLA.DLL”;
函数A_WriteData(IsImmediate:integer;pbuf:AnsiString;长度:integer):integer;stdcall;
外部“WINPPLA.DLL”;
函数A_ReadData(pbuf:PAnsiChar;长度:整数;dwTimeoutms:integer):整数;stdcall;
外部“WINPPLA.DLL”;
函数A_加载_图形(x:整数;y:整数;图形名称:AnsiString):整数;stdcall;
外部“WINPPLA.DLL”;
函数A_Open_ChineseFont(路径:AnsiString):整数;stdcall;外部“WINPPLA.DLL”;
函数A_打印表单(宽度:整数;高度:整数;份数:整数;数量:整数;
表单名称:AnsiString):整数;stdcall;外部“WINPPLA.DLL”;
函数A_打印输出(宽度:整数;高度:整数;副本:整数;数量:整数):整数;
stdcall;外部“WINPPLA.DLL”;
函数A_Prn_条形码(x:integer;y:integer;ori:integer;type_重命名为:char;窄:integer;
宽度:整数;高度:整数;模式:字符;数字:整数;数据:AnsiString):整数;
stdcall;外部“WINPPLA.DLL”;
函数A_Prn_Text(x:integer;y:integer;ori:integer;font:integer;type_重命名为:integer;
水平因子:整数;垂直因子:整数;模式:字符;数值:整数;数据:AnsiString):整数;
stdcall;外部