高手请进,C程序转成Delphi可调用的形式后,调用语句该怎样写,十万火急 (100分)

  • 主题发起人 主题发起人 _liangzi_
  • 开始时间 开始时间
L

_liangzi_

Unregistered / Unconfirmed
GUEST, unregistred user!
C源程序:
struct ComPktInfo{
char JYM[7];
size_t PktLen;
size_t FileLen;
char FileName;
char DYLSH[9];
char JYBZ[2];
long JCH;
long RZLSH;
};
int WINAPI fcstsjjh(struct ComPktInfo *pstInfo,
char *pSndPkt,
char *pSndFile,
char **ppRcvPkt,
char **ppRcvFile,
long lWait,
char fsbz[2]
);
我已经把上面的程序翻译成Delphi的程序如下
type
ComPktInfo = record
JYM:array [0..6] of char;
PktLen:Cardinal;
FileLen:Cardinal;
FileName:char;
DYLSH:array [0..8] of char;
JYBZ:array [0..1] of char;
JCH:longint;
RZLSH:longint;
end;
SZChar=array [0..1] of char;
PComPktInfo = ^ComPktInfo;
PPChar = ^PChar;
function fcstsjjh(pstInfo:PComPktInfo;pSndPkt: PChar;pSndFile: PChar;ppRcvPkt: PPChar;ppRcvFile: PPChar;lWait: longint;fsbz:SZChar):Integer;stdcall;external 'IOHandle.DLL' name 'fcstsjjh';

那如果想赋值
pSndPkt="select * from abc"
pSndFile=""
JYM="100010"
PktLen=pSndPkt的长度
FileLen=0
JYBZ="0"
RZLSH=0
DYLSH="00000000"
Delphi语句该怎么写啊,很急的
 
Pchar类型的变量可直接赋值
如果是从String获得可用PChar强制转型
判断PChar类型变量字符长度用Strlen函数
对于记录类型变量可用开域语句with
也可以直接在变量名后加圆点的方式初始化内部数据
 
能不能写上实现代码,拜托了
 
怎么连问3遍?
var
PsInfo: ComPktInfo;
SndPkt: string;
p1: PChar;
p2: PChar;
begin
SndPkt := 'select * from abc';
with psInfo do
begin
JYM := '100010';
PktLen := length(SndPkt);
FileLen := 0;
JYBZ := ' 0';
RZLSH := 0;
DYLSH := '000000000';
end;
fcstsjjh(@psInfo,pchar(SndPkt),nil,@p1,@p2, 0, '00');
end;
 
例如:
var a:PComPKtInfo;
b,c:PChar;

b:='select * from abc';
c :='';
a.JYM :='100010';
a.PktLen :=strlen(b);
a.FileLen :=0;
a.JYBZ :='0';
a.RZLSH :=0;
a.DYLSH :='00000000';
 
谢谢各位的帮助,十分感谢Pearl.。
看来还是这里的富翁有实力啊。呵呵
放分了,三个都放
 
后退
顶部