请问COM中怎么传递数组参数,我的是CBuilder编译器(100分)

B

bobzjh

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在COM中传递数组参数,翻阅了大富翁以前回答的类似问题,是Delphi的例子,我在cbuilder
上试了一下,编译error。请问怎么解决。
以下是看到的例子。
在Win32中引入了一新变量Variant,可以通过Variant传递数组。具体的实现方法,用Delphi实现为:
Server(COM/DCOM程序)端:
procedure TTestDCOM.Send4(Size: Integer;
D1: OleVariant);
type
TData=array [0..999] of Byte;
Var
Data:TData;
i:Integer;
begin

for i:=0 to Size-1do
begin

Data:=D1;
end;

end;


Cleint端:
Var
D1:OleVariant;
begin

D1:=[red]VarArrayCreate([0,99],varByte);[/red]
//cbuilder不支持该方法
{
D1[1]:=45;
.... //将值存入D1中
}
S.Send4(99,D1);
//S是TestDCOM对象
end;

 
用TList 传试试
 
这是BCB的帮助例子,应该有参考作用吧:
int Bounds[2] = {0,4};
Variant A = VarArrayCreate(Bounds,1, varVariant);
A.PutElement(1,0);
A.PutElement(1234.5678,1);
A.PutElement("Hello world",2);
A.PutElement(true,3);
Variant A4values[3];
A4values[0] = 1;
A4values[1] = 10;
A4values[2] = 100;
A.PutElement(VarArrayOf(A4values,2),4);
 
你的Variant参数必须是输出类型啊。
 
接受答案了.
 
顶部