问题描述:
最近项目中需要用到ActiveX控件,项目是在.Net平台下开发的。因此就直接在项目中添加了对ActiveX控件的引用,添加引用成功。在代码中实例化类的实例也没有问题,但在调用其方法或属性时总是抛出"未处理 COMException"异常。
解决方法,按照以下步骤:
1. 注册ActiveX控件对应的ocx或者dll;
2. 利用VS的命令提示符包装dll;
aximp c:\winnt\system32\msdxm.ocx;//此处只是示例,应该改为自己的axQuickEditor.dll所在目录;
此时将在vs目录中会产生两个dll,将这两个dll放到C#项目的bin/Debug中;
3. 在C#项目中添加引用;
4. 在代码中引用相应的命名空间,然后再实例化相应的类,即可实现调用。
完成上述操作后,如果报“没有注册类”错误,那么检查编译的目标平台是否一致(x86、x64);