日期:2014-05-20  浏览次数:21187 次

C#调用COM组件
我这里有一个VC写的组件,如何用C#来调用它,求源码。
下面的代码是COM组件的主要代码,主要有三个函数组成:阳历日期转阴历日期,阴历日期转阳历日期,阳历日期转星期。其中在阴历和阳历互相转换的函数中,是应用查表的方式进行转换的
//阳历日期转阴历日期
STDMETHODIMP     Cyangconvyin::yangconvyin(WORD   *yangdate,   WORD   *yindate,   BOOL   *prunyue,   CHAR   *yindateString)
//阳历日期转阴历日期
STDMETHODIMP     Cyangconvyin::yangconvyin(WORD   *yangdate,   WORD   *yindate,   BOOL   *prunyue,   CHAR   *yindateString)
//阳历转换为星期
STDMETHODIMP   Cyangconvyin::yangconvweek(WORD   *yangdate,   CHAR   *weekString)


------解决方案--------------------
lz :
你这个com组件的接口不标准,WORD ,BOOL ,CHAR 都是VC专用的,IDL接口规范中没有它们,所以,你写的组件只能在VC环境中使用,VB,Delphi,PB,Net。。。都不能识别。
你需要稍稍做些变动: WORD --> short,BOOL--> bool,CHAR --> char.
至于com组件在net中的调用,这个比较简单,添加dll的引用,加上命名空间(在原来的IDL文件中有),其他的跟net做法一样。