低调大师

动手制作自己的VB控件 ActiveX 方式。然后给C#调用!

2015-2-26 10:15 5已围观 收藏 加入我们

这次项目采用.Net技术开发。所以采集卡这次要将VB代码控制部分进行改变。

开始我用VB转C#工具,生成出来的C#看似有用,我把功能基本上写了一大部分,经过调试发现根本没有用。

那么怎么办?毕竟这卡官方没有最新的开发语言支持,当初VB代码也是我自己摸索出来的,VB代码写的控制部分已经经过我们的实验都是正确的!

所以能否将以前写的VB部分利用起来,又能和C#语言结合!?

于是最佳方案出来啦!  采集卡做成一个VB控件 ActiveX 方式。然后给C#调用!那么就太方便了呀~这样之前VB代码也经过了考证,是可以的!

于是开始搞!

第一步先建立VB采集卡控制控件。

编译出来的结果是

这个OCX就是我做出来的USB2812 控件。

在VS2010 工具箱中导入。就可以看见了。

拖入WINFROM 中就可以看见了!!!  

同时引用中就可以看见2个自动被引入的dll。。。很奇怪这2个DLL这么来的???有什么作用?

后来我没次更新一次 OCX,在VS中就有重新搞一次,非常的复杂,还容易弄坏winfrom。。。这个真不是一个办法。


于是我就开始着手研究这个dll 是怎么来的。想对于ocx我更喜欢这个DLL,有了DLL 岂不更方便?

于是上网差资料 发现

“将ocx文件转换成C#程序引用的DLL文件的办法

详细出处参考:http://www.jb51.net/article/34766.htm”

1.打开VS2008或VS2010命令提示符(此例用VS2008)

将ocx文件拷贝到d:\Program Files\Microsoft Visual Studio 9.0\VC下

2.注册ActiveX控件

regsvr32 IB_USBKEY.ocx

3.编译OCX文件

aximp IB_USBKEY.ocx

生成两个dll文件,项目中引用Ax前缀的文件

4。将生成的两个dll文件拷贝到项目中

原来这2个DLL是用这个生成出来的!!!太棒了,OCX每次升级很不方便,用DLL岂不更爽!

于是用这个方法!先用VB做OCX,然后转成.NET 用的DLL,引入即可用了!

为什么会出现2个呢?据我观察,Ax前缀的DLL 对USB2812LIB进行的封装,加了析构函数。

所以在NEW的时候 用AxUSB2812LIB


大功告成!!

=============================================================


文章转载至:https://my.oschina.net/caomenglong/blog/380029
收藏 (0)

文章评论

共有0条评论来说两句吧...