我试图让我的财务打印机在没有用 C++ 编写的“驱动程序”的情况下工作,并与文件通信。我想避免这种情况并使用财务打印机的 dll 文件进行直接通信。
在我发送命令“F0”(打印机状态)后,在 C++ 应用程序中的答案是:060052000001000000018400000003AE5145202020524D20333330393833322020202031352E30382E323031332031343A3330
在我发送命令“F0”(打印机状态)后,在 delphi 应用程序中的答案是:䁘</p>
C++代码:
extern "C" __declspec(dllimport) char* __stdcall TransmitPrinterCommand(int IPCom, char* Port, int BaudRateNr, char* Command);
cprt = TransmitPrinterCommand(0, cp.c_str(), StrToInt(Baud), EditCommand->Text.c_str());
if (cprt.Length() == 2)
{ ... error
德尔福代码:
function TransmitPrinterCommand(IPCom:integer; Port:AnsiString; BaudRateNr:integer; Command:AnsiString):WideChar;
stdcall; external 'QPrintFM.dll';
...
procedure TForm1.Button1Click(Sender: TObject);
var
cprt:WideChar;
begin
cprt:=TransmitPrinterCommand(0,AnsiString('COM2'), 9600, AnsiString(txtKomanda.Text));
txtRez.Text:=cprt;
end;
编辑 3
正如 Re0sless 建议的那样,我更改了以下代码:
function TransmitPrinterCommand(IPCom:integer; Port:AnsiString; BaudRateNr:integer; Command:AnsiString):PAnsiChar;
stdcall; external 'QPrintFM.dll';
cprt:=TransmitPrinterCommand(0,AnsiString('COM2'), 9600, AnsiString(txtKomanda.Text))
现在一切正常的酒。
提前致谢!