M
martinwang
Unregistered / Unconfirmed
GUEST, unregistred user!
一DLL需要供其他开发工具调用:
函数声明:
一
int checkname(userinfo* usrInfo, workinfo* winfo, char* msg);//基于C++`
对应Delphi里这样声明:
type
userinfo = record
userid: integer;
username: array[0..20] of char; //pchar 用字符数组可否接收char*数据,即客户传入char* username这样的数据可否正常接收
userpassword: array[0..20] of char; //pchar 同上
end;
puserinfo = ^userinfo;
workinfo = record
workid: integer;
workaddr: array[0..140] of char;//同上
workexp: array[0..140] of char;//同上
end;
pworkinfo = ^workinfo;
function checkname(puInfo: puserinfo; pwkinfo: pworkinfo; msg: pchar): integer; stdcall;
1.这个函数对应Delphi里的声明是否有问题?
2.如果字符数组不能满足上面的要求,那么应该需要将char*(对应delphi里应该是pchar)转换成string或其他Delphi可以进
行操作的数据类型(比如转成另一个结构,进行网络传输)
3.在编写过程中还需注意些什么?
二
int getList(userinfo* usrInfo, usercj[] usrcj, char* msg) ;
对应Delphi里这样声明:
type
userinfo = record
userid: integer;
username: array[0..20] of char; //pchar 用字符数组可否接收char*数据,即客户传入char* username这样的数据可否正常接收
userpassword: array[0..20] of char; //pchar 同上
end;
puserinfo = ^userinfo;
usercj = record//用户成绩 举例
userid: integer;//传入
cjtype: array[0..20] of char;//同上 传出此值
cjname: array[0..20] of char;//同上 传出此值
cjDetail: double;// 传出
end;
function getList(puInfo: puserinfo; var usrcj: array of usercj; msg: pchar);
1.var usrcj: array of usercj 进来的值应该是引用,usercj[] usrcj c++里对数组,如同指针操作,这样声明对否??不对,应该如何做?
2.delphi dll中,对动态数组做为参数及返回值有一个规定即在工程单元里须加入shareMem单元,不知还有什么其他需要注意的地方?
3.同一里的2小点
由于这方面的经验不是很丰富,请各位大人提宝贵意见!!谢谢!!!
函数声明:
一
int checkname(userinfo* usrInfo, workinfo* winfo, char* msg);//基于C++`
对应Delphi里这样声明:
type
userinfo = record
userid: integer;
username: array[0..20] of char; //pchar 用字符数组可否接收char*数据,即客户传入char* username这样的数据可否正常接收
userpassword: array[0..20] of char; //pchar 同上
end;
puserinfo = ^userinfo;
workinfo = record
workid: integer;
workaddr: array[0..140] of char;//同上
workexp: array[0..140] of char;//同上
end;
pworkinfo = ^workinfo;
function checkname(puInfo: puserinfo; pwkinfo: pworkinfo; msg: pchar): integer; stdcall;
1.这个函数对应Delphi里的声明是否有问题?
2.如果字符数组不能满足上面的要求,那么应该需要将char*(对应delphi里应该是pchar)转换成string或其他Delphi可以进
行操作的数据类型(比如转成另一个结构,进行网络传输)
3.在编写过程中还需注意些什么?
二
int getList(userinfo* usrInfo, usercj[] usrcj, char* msg) ;
对应Delphi里这样声明:
type
userinfo = record
userid: integer;
username: array[0..20] of char; //pchar 用字符数组可否接收char*数据,即客户传入char* username这样的数据可否正常接收
userpassword: array[0..20] of char; //pchar 同上
end;
puserinfo = ^userinfo;
usercj = record//用户成绩 举例
userid: integer;//传入
cjtype: array[0..20] of char;//同上 传出此值
cjname: array[0..20] of char;//同上 传出此值
cjDetail: double;// 传出
end;
function getList(puInfo: puserinfo; var usrcj: array of usercj; msg: pchar);
1.var usrcj: array of usercj 进来的值应该是引用,usercj[] usrcj c++里对数组,如同指针操作,这样声明对否??不对,应该如何做?
2.delphi dll中,对动态数组做为参数及返回值有一个规定即在工程单元里须加入shareMem单元,不知还有什么其他需要注意的地方?
3.同一里的2小点
由于这方面的经验不是很丰富,请各位大人提宝贵意见!!谢谢!!!