动手制作自己的VB控件 ActiveX 方式。然后给C#调用!
动手制作自己的VB控件 ActiveX 方式。然后给C#调用!
曹梦龙 发表于3年前
动手制作自己的VB控件 ActiveX 方式。然后给C#调用!
  • 发表于 3年前
  • 阅读 119
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 在上位机开发过程中,很多第三方硬件厂商提供了VB编写的DEMO代码,理论上可以把VB代码重新用C#,VB.NET编写,不过工作量会增加,还不一定好用。为了让项目顺利快速的进行,我使用了混编技术。用VB写一个activeX控件给.NET程序调用,这样能保证原汁原味,加快的编程的速度,可靠性,和可借鉴性。

这次项目采用.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


大功告成!!

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


共有 人打赏支持
粉丝 15
博文 27
码字总数 12015
×
曹梦龙
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: