请帮忙将这段c++ builder code 翻译成 delphi code(100分)

A

agangr

Unregistered / Unconfirmed
GUEST, unregistred user!
//函数申明
int PlpOpen(unsigned int baudrate);
void PlpClose();
int PlpRead(unsigned char *portname, unsigned char *addr, unsigned char *buf, int *readlen);
int PlpRead(unsigned char *portname, unsigned char *addr, unsigned char *buf, int readlen);
int PlpReadAppoint(unsigned char *portname, unsigned char addr, unsigned char *buf, int n);
int PlpWrite(unsigned char *portname, unsigned char addr, unsigned char *buf, int n);

//函数调用

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
int ret1, ret2, readlen;
unsigned char addr, portname[10];
unsigned char rbuf[260]


Timer1->Enabled = false;
Timer1->Interval = 50;

readnext:
ret1 = PlpRead(portname, &addr, rbuf, &readlen);
if( readlen == 0 || ret1 < 0 )
{
Timer1->Enabled = true;
return;
}
do{
ret2 = PlpWrite(portname,addr,rbuf,readlen);
}while( ret2 < readlen);

if( ret1 > 0 ) goto readnext;
Timer1->Enabled = true;
}
//---------------------------------------------------------------------------
 
function PlpOpen(baudrate:integer):integer;
procedure PlpClose;
function PlpRead(portname:string
addr:string
buf:string
var readlen):integer;
function PlpRead(portname:string;addr:string;buf:string;readlen:integer):integer;
function PlpReadAppoint(portname:string
addr:char;buf:string
n:integer):integer;
function PlpWrite(portname:string;addr:char
buf:string;n:integer):integer;

//函数调用

procedure TForm1.Timer1Timer(Sender:TObject )
begin
var ret1, ret2, readlen:integer;
addr:char;
portname:array [0..10] of char;
rbuf:array [0..260]of char


Timer1.Enabled = false;
Timer1.Interval = 50;

label readnext;
ret1 := PlpRead(portname, &amp;addr, rbuf, &amp;readlen);
if(( readlen = 0) or (ret1 < 0 ))then
Timer1.Enabled = true

repeat
ret2 = PlpWrite(portname,addr,rbuf,readlen);
until ( ret2 < readlen);

if( ret1 > 0 ) goto readnext;
Timer1.Enabled := true;
end;
 
函数调用
function PlpOpen(bandrate: Longword): integer;
procedure PlpClose;
function PlpRead(portname, addr, buf: PChar;var readlen: integer):integer;
function PlpRead(portname, addr, buf: PChar;readlen: integer): integer;
function PlpReadAppoint(portname, addr:pChar;buf:pointer
n:integer): integer;
function PlpWrite(portname, addr: PChar
buf: Pointer
n: integer): integer;



 
我怎么感觉你的这几个C++的声明很奇怪 没错吧
3个Read的功能根本就没有差别,尤其是前两个 那个Write的...
还有 现在一般不推荐使用Goto 不过Delphi没有Do While的
 
顶部