日期:2014-05-19  浏览次数:20825 次

求助:C#中如何调用C++做成的COM接口??
有一个ocx的控件,是用C++做成的,封装成了COM接口。
其中的一个方法是   void   GetDiNum(VARIANT*   diList);
在控件中被封装成了   void   GetDiNum(ref   object   diList);

请问如果要在C#中调用该接口,如何给给该方法传值?
C#中VARIANT对应哪种类型?

在线等待。

------解决方案--------------------
C#中没有VARIANT类型,代之的是object类型,理论上可以传递任何类型过去。但实际可以传递什么类型就要看你的OCX的实现了!
------解决方案--------------------
http://www.cppblog.com/mzty/archive/2007/06/04/25522.html
------解决方案--------------------
VARIANT在C#里面,可以对应一个结构体struct。

传递一个C#的结构体就应该没有任何问题了。
------解决方案--------------------
Importing SafeArrayCreate (i.e., [DllImport( "oleaut32.dll ")] SafeArrayCreate) ;