.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
下面是问题的详细描述。
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
...全文
相关推荐
.NET程序集引用COM组件MSScriptControl遇到问题的解决方法
MSScriptControl是一个可以用来执行JavaScript脚本的COM组件,它可以集成到.NET程序中使用。然而,在使用过程中可能会遇到一些问题,尤其是在不同的应用程序类型中。
C#.net,com编程指南
**调试与问题解决**:书中也会涵盖在开发和部署COM+组件时可能遇到的问题,以及如何使用Visual Studio等工具进行调试和问题排查。8. **性能优化**:对于大型企业级应用,性能至关重要。
net开发COM+组件
### .NET 下开发 COM+ 组件相关知识点#### 一、背景及问题引入在 .NET 平台下开发 COM+ 组件时,通常会遇到因并发读写操作导致的性能问题以及潜在的读写冲突。
libgdx-ios-net:com.badlogic.gdx.Net 使用 Objective-C APIi 的实现
它通过使用Objective-C API重新实现com.badlogic.gdx.Net的部分功能,特别是与HTTPS请求相关的部分,以确保在64位环境下能够稳定地进行网络通信。
.net和 vb WebBrowser 浏览器兼容问题
在.NET和VB(Visual Basic)开发环境中,使用WebBrowser控件可能会遇到一些浏览器兼容性问题。


