背景:最近项目中需要用到ActiveX控件,项目是在.Net平台下开发的。因此就直接在项目中添加了对ActiveX控件的引用,添加引用成功。在代码中实例化类的实例也没有问题,但在调用其方法或属性时总是抛出"未处理 COMException"异常。
方法一:
1、在系统中注册该ocx控件,命令:regsvr32.exe 控件位置(加 /u 参数是取消注册);
2、在.net的工具箱中添加该控件,拖到form中去就可以了。
方法二:
1、用Aximp.exe来包装一下ocx控件的类;
2、在程序中引用生成的dll就可以了。
区别:
1、方法一不需要手动包装ocx控件,方法二需要;
2、方法一需要将控件先添加到工具箱,方法二不需要。
************************************************************************
关于Aximp.exe包装ock控件在msdn中一段相关文字,链接:http://msdn.microsoft.com/zh-cn/library/8ccdh774(VS.80).aspx
链接内容:

在.NET平台上,使用C#调用ActiveX控件时遇到'未处理COMException'异常。解决方法包括在系统注册控件并将其添加到工具箱,或者使用Aximp.exe工具生成DLL进行引用。两种方法各有特点,前者无需手动包装,后者无需添加到工具箱。
最低0.47元/天 解锁文章
467

被折叠的 条评论
为什么被折叠?



