天天看点

C#集成ActiveX控件

问题描述:

最近项目中需要用到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);