使用VS2010 C#开发ActiveX控件(上)

2019-12-26 11:10:47于丽

项目中的Bin中,添加文件时浏览到CardReaderCardReader.ControlsbinDebug中的mwrf32.dll打包进去,否则会出现找不到mwrf32.dll的错误。

添加完文件后,设置Primary Output From CardReader.Controls的Register属性为vsdrpCOM。设置完成后右击安装工程SetupCardReader,

修改其属性,如下图8所示:


使用VS2010 C#开发ActiveX控件(上)

 图8

         在上图中可以设置输出的文件名,这个文件名就是打包后安装文件.MSI的文件名。设置包文件、压缩方式,CAB size,这三项均选择默认值即可。

最后设置安装URL,这里的安装URL是用来发布或者测试ActiveX的URL地址的。上图中我们将在89端口下进行测试,因此URL设置为:


http://www.easck.com/p>
	

这里的Setup.exe就是我们在使用ActiveX时的codebase文件。

打包成exe文件以后,我们可以进一步对安装文件进行打包成.cab文件,安装隐藏了msi 安装界面,类似于cabarc 打包ocx 的效果

(点击install 之后其他的都后台做了),本文中暂不讨论,感兴趣的读者可以使用CAB SDK 中的工具CABARC.EXE (下载地址 http://www.easck.com/kb/310618 )来进行。


   使用ActiveX

打包完成后,我们就可以在应用程序中使用打包好的ActiveX控件了,创建一个web项目(CardReader.Web),在测试页面的HTML代码中添加对ActiveX控件

的引用,修改default.aspx的代码如下:

    <object id="cardReader1" classid="clsid:E395359C-86F2-4D7B-A91A-5A64B9E3BA6C" 
        width="500"
        height="100" 
        codebase="CardReader/SetupCardReader/Debug/Setup.exe">
    </object>