VC写DLL 参数为结构数组,Delphi如何调用???1.VC写得dll,参数为结构,delphi调用 实现如下:
c结构如下
typedef struct {
char Name[32];
short FieldNo[10] ;
short FieldCount;
}K_INFO;
c函数声明为:
int __stdcall Test(K_INFO* Info);我在delphi里结构为 K_INFO = PACKED RECORD
Name : ARRAY[ 0..31 ] OF char;
FieldNo: ARRAY[ 0..9 ] OF smallint;
FieldCount:smallint;
END;
PK_INFO=^K_INFO;
我在delphi里声明为
Function Test(Info:PK_INFO):integer;stdcall;external 'Mydll.dll' name 'Test';调用时:
var
Info:K_INFO;
ret:integer;
begin
Info.Name:='test';
Info.FieldCount:=0;
ret=Test(@Info);
end;2.如果DLL函数参数为数组呢? DLL怎么调用呢~?~ 求强人~~
int __stdcall Test(K_INFO* Info[10]);
c结构如下
typedef struct {
char Name[32];
short FieldNo[10] ;
short FieldCount;
}K_INFO;
c函数声明为:
int __stdcall Test(K_INFO* Info);我在delphi里结构为 K_INFO = PACKED RECORD
Name : ARRAY[ 0..31 ] OF char;
FieldNo: ARRAY[ 0..9 ] OF smallint;
FieldCount:smallint;
END;
PK_INFO=^K_INFO;
我在delphi里声明为
Function Test(Info:PK_INFO):integer;stdcall;external 'Mydll.dll' name 'Test';调用时:
var
Info:K_INFO;
ret:integer;
begin
Info.Name:='test';
Info.FieldCount:=0;
ret=Test(@Info);
end;2.如果DLL函数参数为数组呢? DLL怎么调用呢~?~ 求强人~~
int __stdcall Test(K_INFO* Info[10]);
解决方案 »
- 请教如何将域名转IP
- 软件开发项目,从立项、定义、需求分析、概要设计、详细设计、编码实现、测试等,大家认为各开发阶段应该优先选用哪些配套的易用、优秀的开发工具。并且通过对优秀的开发工具的合理评价和交流,方便我们广大开发者。
- 使用installshield制作安装程序得时候如何添加使用说明!
- 请教:SQL语句得写法(关于时间)
- 用sql进行多表查询的难题?
- 我想做一个程序,检测windwos是否安装了.net的frmaework,mdac2.7和ie6,请教怎么作啊
- 找 InstallShield Professional 7 和语言包。
- 新手请教:DELPHI6+SQL SERVER 2000
- 如何通过判断PageControl的标签页的焦点,来选择不同的语句?
- 如何在程序中动态生成控件?(在线等待)
- 如何提高建树的速度
- 欢迎C/S模型的DELPHI+SQL的朋友加入我刚建的QQ群讨论问题QQ群号:14539240
info: array[0..9] of K_INFO;test(info);这样试试看
Function Test(Info: arr):integer;stdcall;external 'Mydll.dll' name 'Test';var
info: arr;test(info);这样呢?我自己测试可以通过的。
Function Test(info: array of PK_INFO):integer; stdcall;external 'job.dll' name 'getJobDetails';procedure TForm1.Button1Click(Sender: TObject);
var
ii: array[0..9] of K_INFO;
pii: array[0..9] of PK_INFO;
res: integer;
i: integer;
begin
for i:= 0 to 9 do
begin
pii[i]:= @ii[i];
end;
res:= test(pii);
showmessage(pii[2]^.name);
showmessage(inttostr(res));
end;