(加急!)com中传递参数问题?(50分)

A

atface

Unregistered / Unconfirmed
GUEST, unregistred user!
com中接口中的方法参数有array of byte 的类型,请问怎样传递给com?
idl中那种类型能跟这匹配,具体怎样用?
atface@163.com
 
用variant类型
发送
procedure SetData;
var AData : OleVariant;
a : Integer;
begin
AData := VarArrayCreate([0, 9], varByte);
for a := 0 to 9do
AData[a] := 1;
XXXXCOM.DataSet(AData);
end;

接受
procedure DataSet(ADATA: OleVariant);
var a : Integer;
begin
for a := 0 to 9do
TenChar[a] := Char(Byte(ADATA[a]));
end;
 
如果参数是多维数组呢?
 
一样了,OleVariant是马桶变量,很多东西都可以往里面放
 
具体是这样的
TkeyByte:array[0..5] of byte
参数subkey:array of TKeyByte
但在com中我设subkey为OleVariant
在实现中 编译过程中 就提示我olevariant与TkeyByte不匹配!
 
to 木子
能否帮我解决个问题!谢谢!

栈溢出!exe中调用dll导出的类,实现读取dat文件时出现问题!
dll中有个类接口,exe中uses接口文件,dll中由此类的实现,导出此类,在函数中调用
就出问题!
 
你把处理dat文件的代码贴出来,才能帮你解决了
 
to 木子
http://delphibbs.com/delphibbs/dispq.asp?lid=1783018
 
OleVariant
 
{具体是这样的
TkeyByte:array[0..5] of byte
参数subkey:array of TKeyByte
但在com中我设subkey为OleVariant
在实现中 编译过程中 就提示我olevariant与TkeyByte不匹配!
}
把具体代码贴出来,看看
 
使用Dispatch call的方式,在编译期不作类型检查,
木子的方法可行.
 

Similar threads

回复
0
查看
811
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部