首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

.net下使用com的有关问题

2013-07-08 
.net下使用com的问题首先直接说出问题:经.net包装后的com中ActveX在创建实例后,将其作为参数传递回com中其

.net下使用com的问题
首先直接说出问题:经.net包装后的com中ActveX在创建实例后,将其作为参数传递回com中其他类实例的方法时出现类型错误(非.net面向对象环境是不出错的)。无法将包装成.net可调的类型AxCA转换成包装后CA。
下面是问题的详细描述。

com的情况如下:
1.com文件为MyCom.dll
2.com中的类库为Tlib,注册的友好名称为My Type Library
3.类库中有两个类:CA, CB。其中CA是一个ActiveX。
4.CB有的方法中有一个Mx(pCA),即一个CA的实例引用。

使用情况如下:
1..net项目中引用com的类库My Type Library
2.在工具箱的选项卡中添加项,选择com组件中CA的友好名称
3.将CA对应的控件拖到窗体上创建一个实例,默认名称为AxCA1,其类型为AxTlib.AxCA

4.自动生成了两个包装文件Interop.Tlib.dll和AxInterop.Tlib.dll。
5.项目中的多出两个命名空间:Tlib和AxTlib
6.Tlib下有两个类:CA和CB
7.AxTlib下有一个类:AxCA

这时候在.net中对AxCA1的操作都很正常,问题出在调用
CB1.Mx(AxCA1)
错误是无法将类型AxTlib.AxCA强制转换为Tlib.CA


[解决办法]
有点绕,有没有demo的工程发来看看。上传到某处下载看看

热点排行