还是COM中的参数传递(100分)

  • 主题发起人 主题发起人 y9y
  • 开始时间 开始时间
Y

y9y

Unregistered / Unconfirmed
GUEST, unregistred user!
对不起,问过类似的问题,但仍然无法解决项目里情况。

我需要把已有的一个项目改为COM程序,OUT-PROC SERVER
要传输参数里,有很多是复杂的RECORD,而且是类型怪怪的,如

type
TResTare = packed record
ResT : array[1..4] of real48;
ResC : array[1..4] of real48;
Cap : array[1..4] of real48;
TP : array[1..4] of String[20];
end;

请问我如何才能实现:
GET_RESTARE: VARIANT;
SET_RESTARE(VARIANT);

如果是用VARIANTARRAY,好象要再定义一个:
TYPE
T_NORMAL_RESTARE
ResT1 : float;
....
ResT4 : float
ResC1 : float;
...
ResC4 : float
....
end;

为了实现数据传递,要先把TResTare格式的变量换成T_Normal_ResTare
以便能在Type Lib Editor里定义为COM接受格式的RECORD,然后再把
T_Normal_ResTare转为0Variant,做参数传递,在使用这些数据时,因为
得到的是VARIANT,还要再把它还原回TResTare才行。

这么麻烦?是否有好办法?我的程序里,有几十种不同类型的RECORD要传递,
怎么办阿?
 
y9y你去看看这个问题的讨论吧
http://www.experts-exchange.com/EQ.10340517-2802441
 
y9y,是否可以?
 
接受答案了.
 

Similar threads

回复
0
查看
978
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部