请高手帮忙dll 可以返回多个参数么?请问应该怎么写? ( 积分: 50 )

  • 主题发起人 主题发起人 ayunyun
  • 开始时间 开始时间
A

ayunyun

Unregistered / Unconfirmed
GUEST, unregistred user!
问题1
function informationS(dr_name:string;str:string):Pchar;stdcall;
在这个Result 返回了一个 Pchar类型的参数
那么请问我应该如何使它返回多个 Pchar类型的参数?
问题2
一个字符串"企业名称:123 企业类型:qy_typwere 主要产品:qy_product 成立年份:qy_date企业名称:1111 企业类型:qy_typwere 主要产品:qy_product 成立年份:qy_date
企业名称: 1234443 企业类型:qy_typwere 主要产品:qy_product 成立年份:qy_date"
这是我在DLL里面编写从数据库去出多条记录 以一个字符串形式返回 但是我想把它有续排列出来 请问我应该怎么办?
其实这两个是同一个问题
我也在考虑这两种方法
请高手帮忙
 
问题1
function informationS(dr_name:string;str:string):Pchar;stdcall;
在这个Result 返回了一个 Pchar类型的参数
那么请问我应该如何使它返回多个 Pchar类型的参数?
问题2
一个字符串"企业名称:123 企业类型:qy_typwere 主要产品:qy_product 成立年份:qy_date企业名称:1111 企业类型:qy_typwere 主要产品:qy_product 成立年份:qy_date
企业名称: 1234443 企业类型:qy_typwere 主要产品:qy_product 成立年份:qy_date"
这是我在DLL里面编写从数据库去出多条记录 以一个字符串形式返回 但是我想把它有续排列出来 请问我应该怎么办?
其实这两个是同一个问题
我也在考虑这两种方法
请高手帮忙
 
返回 Tlist不行吗?
 
用记录数组不可以吗?
 
使用结构就可以了,把结构返回就可以实现多个参数传递了
 
function A(dr_name:string;str:string):Pchar;stdcall;
BEgin
End;
exports
A;
function B(dr_name:string;str:string):Pchar;stdcall;
BEgin
End;
exports
B;
function C(dr_name:string;str:string):Pchar;stdcall;
BEgin
End;
exports
C;
begin
End;
 
type
a=record
企业名称:string;
企业类型:string;
主要产品:string;
成立年份:Tdatetime;
end;
 
提到了DLL,说明你的系统已经在走向构件化,而不是仅一个EXE!
使用参数返回多个想要的东西没有任何技术问题,不用多说。
我的建议是:1)应该使用COM类型的DLL;2)复杂数据的传输应该考虑使用XML格式
 
function informationS
(
传入1:PChar;传入2:PChar;...传入N : PChar;
传出1:PChar;传出2:PChar;...传出N : PChar;
) : Integer;stdcall;
 
他们说的答案都太复杂了,什么设置都不用,一个返回值可以当作n多个返回值用,你要把需要返回的参数合成一个字符串每一个参数之间用“,”号隔开,接收的时候再分解这个字符串就可以了,保证不会出错。
 
用,隔开会有问题吧,万一有一样的呢
 
用var参数啊
procedure FunctionA(var Result1, Result2, Result3: string);
begin
//Result1..3既可以做传入参数,也就是你可以传入值,同时在本过程中
//你还可以改变他们的值,由于有var关键字指定,你在本过程中改变了他们
//的值后,本函数外也能看到结果.
if Result1 <> '' then
Result1 := 'Return Result:' + Result1;
if Result2 <> '' then
Result2 := 'Return Result:' + Result2;
if Result3 <> '' then
Result3 := 'Return Result:' + Result3;
end;
你调用试试
 
1、可以通過TStringList。
2、可以通過數據實現。
3、自定義結構,不過DLL或EXE都要聲明。
4、用XML會更好些,把所有數據當作數據庫處理。
5、用INI文件也可以實現你的功能。
 
to:明月几时有
用,隔开会绝对不会有问题,一样的也不会有问题,值一样但它在字符串中的位置不一样,照样是两个参数。
 
接受答案了.
 
后退
顶部