C#中使用VC ActiveX控件

环境:VS2010,WinForm:

以VC下的dsoframer.ocx为例

1. 首先用AxImp.exe将ActiveX 控件的 COM 类型库中的类型定义转换为 Windows 窗体控件,这样才能在WinForm中使用。

AxImp.exe路径:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\

AxImp.exe能够把一个VC dll转换成两个.Net DLL,在C#项目中引用Ax开头那个。

注意:.Net DLL应具有强名称,所以要准备两个密钥文件,供AxImp.exe给生成的DLL签名用。

签名工具:sn.exe

sn.exe路径:\Program Files\Microsoft SDKs\Windows\v7.0A\bin

cmd中执行:sn -k d:\key1.snk

                       sn -k d:\key2.snk

                       aximp D:\dsoframer.ocx /keyfile:D:\key1.snk  D:\key2.snk

生成了DSOFramer.dll 和AxDSOFramer.dll,C#项目中添加对AxDSOFramer.dll的引用。(两个DLL文件都需要,要放在一起)


2.注册DLL

三个DLL:dsoframer.ocx 、DSOFramer.dll 和AxDSOFramer.dll都需要注册。

dsoframer.ocx 用regsvr32.exe注册,DSOFramer.dll 和AxDSOFramer.dll用.net 下的RegAsm.exe进行注册,并用gacutil.exe将其添加进全局程序集缓冲。

gacutil.exe位置:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\

RegAsm.exe位置:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\

注意:

1.注册用的gacutil和RegAsm的版本要和你项目的运行库版本一致。比如你设置了项目的运行库为.net 2,那么你就要找主版本号为2的gacutil和RegAsm。

2.在64位windows上,你要把三个DLL全放进SysWOW64,并使用这个文件夹里的cmd.exe进行注册。


注册代码

regsvr32 /s \dsoframer.ocx
gacutil /i DSOFramer.dll 
regasm DSOFramer.dll
gacutil /i AxDSOFramer.dll 
regasm AxDSOFramer.dll


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值