一段小代码 delphi 7下能用,delphi XE2下就不能用了,大家伙儿给看看
一段小代码 delphi 7下能用,delphi XE2下就不能用了,大家给看看。
function com_init(com:Integer; baud:Dword):Boolean;stdcall;external 'api_com.dll';
function com_rest:Boolean;stdcall;external 'api_com.dll';
function com_send(buf:pchar; len:Integer):Boolean;stdcall;external 'api_com.dll';
下面这段代码,delph7正常没问题,怎么到delphi xe2下就不能用了,客显出现的数字和输入的数字不一致。
procedure send_led(n_string:string);
var PDStr:string;
begin
PDStr:=Chr(27)+Chr(81)+Chr(65)+n_string +Chr(13);
try
com_send(pchar(''),1) ;
com_send(pchar(PDStr),Length(PDStr)) ;
except
end;
end;
我把pchar换成PAnsiChar也不行。
------解决方案--------------------
这样试试
function com_init(com:Integer; baud:Dword):Boolean;stdcall;external 'api_com.dll';
function com_rest:Boolean;stdcall;external 'api_com.dll';
function com_send(buf:pchar; len:Integer):Boolean;stdcall;external 'api_com.dll';
下面这段代码,delph7正常没问题,怎么到delphi xe2下就不能用了,客显出现的数字和输入的数字不一致。
procedure send_led(n_string:string);
var PDStr:string;
begin
PDStr:=Chr(27)+Chr(81)+Chr(65)+n_string +Chr(13);
try
com_send(pchar(''),1) ;
com_send(pchar(PDStr),Length(PDStr)) ;
except
end;
end;
我把pchar换成PAnsiChar也不行。
------解决方案--------------------
这样试试
function com_init(com:Integer; baud:Dword):Boolean;stdcall;external 'api_com.dll';
function com_rest:Boolean;stdcall;external 'api_com.dll';
function com_send(buf:PAnsiChar; len:Integer):Boolean;stdcall;external 'api_com.dll';
procedure send_led(n_string : AnsiString);
var PDStr: AnsiString;
begin
PDStr:= AnsiChar(Chr(27)) + AnsiChar(Chr(81)) + AnsiChar(Chr(65)) + n_string + AnsiChar(Chr(13));
try
com_send(PAnsiChar(''),1) ;
com_send(PAnsiChar(PDStr),Length(PDStr));
except
end;
end;