请大虾在百忙之中告诉我,Com+传不定长数组的解决方案。
是发布在组建服务上的进程间传递,不是进程内。服务器、客户端均用Vc实现。 问题点数:20、回复次数:8Top
1 楼wei97081116(韦小宝)回复于 2002-09-27 16:09:48 得分 20
SAFEARRAYTop
2 楼z816hot293(雪中火)回复于 2002-09-27 17:14:23 得分 0
可用SAFEARRAY,或者用vector<string>和VARIANT配合使用。Top
3 楼ruihuahan(飞不起来的笨鸟)回复于 2002-09-27 17:45:43 得分 0
见《COM+精彩编程》一书,那里有相应的idl语法和怎样用C++去实现。Top
4 楼verybigmonster(大怪兽)回复于 2002-09-27 17:58:52 得分 0
方案1:
用safearray
优点--是IDispatch支持的类型,各类script以及VB都能懂
缺点--很不好写
方案2:
用IDL中的sizeis,lengthis 操作符
优点--简单明了
缺点--非IDispatch支持的类型,要求C/S双方都是C++写的
Top
5 楼weizhengzhao(eeee)回复于 2002-09-27 22:35:56 得分 0
可是我试过了,用safearray如果数组元素是自定义的结构就无法准确传,请大虾明示。Top
6 楼wei97081116(韦小宝)回复于 2002-09-28 08:33:35 得分 0
SafeArrayAccessData
SafeArrayAllocDataTop
7 楼weizhengzhao(eeee)回复于 2002-09-30 12:01:13 得分 0
我试过了,传不定长的数组没问题,但必须在程序中指出每个数组元素的大小。谢谢韦大虾!如果我的结构中仍然有不定长数组,请问大虾还有好办法吗?Top
8 楼wei97081116(韦小宝)回复于 2002-09-30 12:22:18 得分 0
SAFEARRAY->SAFEARRAYTop




