vc 动态库中函数如何在DELPHI中声明与调用及参数传递

benjiamen 2005-04-12 09:47:57
在VC 的动态库中函数的原型如下:
GetData(char * reid,char * inbuf,int inlen,char * outbuf,int * outlen);

要求传过去5个参数,再把修改后的reid,outbuf,oulen 传回来,请问在Delphi里如何声明这个函数且如何调用与传递参数给这个函数.
...全文
94 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzmhero 2005-04-12
  • 打赏
  • 举报
回复
procedure GetData(reid:pChar;inBuf:pChar;inlen:integer;outbuf:pChar;outlen:PInteger);stdcall;external '*****.dll';


type
MMData=record
code:array[0..5] of char;
sdate:array[0..7] of char;
edate:array[0..7] of char;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
mData:MMData;
out_buf:array[0..999] of char;
reid:array[0..3] of char;
outlen:integer;
begin
ZeroMemory(pChar(@mData),sizeof(mdata));
CopyMemory(@mdata.code[0],pChar('000024'),6);
CopyMemory(@mdata.sdate[0],pChar('20040101'),8);
CopyMemory(@mdata.edate[0],pchar('20040110'),8);
GetData(@reid[0],pChar(@mData),sizeof(mdata),@out_buf[0],@outlen);
end;
mezw 2005-04-12
  • 打赏
  • 举报
回复
function GetData(reid,inhuf:pchar;inlen:integer;outbuf:pchar,outlen:pinteger);

调用:
var
aa:array[0..7]of byte;
i:integer
begin
GetData(@aa[0],@aa[0],0,@aa[0],@i);
end;
Heyongfeng 2005-04-12
  • 打赏
  • 举报
回复
char —> byte

function GetData(reid:pbyte;inbuf:pbyte;inlen:integer;outbuf:pbyte;outlen:pinteger): longint; StdCall; external 'MYLIB.DLL';

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧