描述:
http://www3.ccw.com.cn/club/essence/200106/2119.htm
------------全文-----------------
在COM中传递数组可以通过VARIANT来实现。在VARIANT中包含一个SAFEARRAY,SAFEARRAY描述一个数组。VARIANT和SAFEARRAY在Automation中都有定义。使用这个方法的好处是支持Automation,换句话说就是可以在VB中使用,充分实现COM跨语言的好处。
我不认为在COM中传递数组和结构体是个好主意,除非有特别的性能要求,因为它明显违背了COM对象相间的封装原则。COM对象间传递的应该是接口(interface)指针,而不是大块的数据。数组可以通过集合来实现,结构体可以通过属性(property)来实现。真正的数据在实现中被定以成私有的(private),只能在内部使用。
--------------------end----------------
对于第二段, 难道我们要把每个结构体都做成接口? 然后做个集合来包含这个接口, 以达到传递结构体数组?
直接传递结构体数组和传递规定大小的数组好像都可以啊, 如果把一个结构体做成接口, 是否方便了? 编码方面?
解决方案1:
沒有看全文
從引文來看他說的不是能不能的問題而是好不好的問題 當然兩种方法各有其優點和缺點 但是顯然現實的情況是兩种方式都在使用 看你需要的是哪些特徵 然後才能決定你需要哪种使用方式