文档章节

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

曹梦龙
 曹梦龙
发布于 2015/02/26 10:15
字数 747
阅读 420
收藏 1

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


大功告成!!

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


© 著作权归作者所有

共有 人打赏支持
曹梦龙
粉丝 14
博文 27
码字总数 12015
作品 0
扬州
高级程序员
私信 提问
activex开发心得

如果你想通过C#和VB.net来做ActiveX的请,我劝你尽快打消这个念头。.net认为ActiveX技术是过时的,所以C#和Vb.net都做不了ActiveX。C#和VB.net可以做类似的东西,但它不叫ActiveX而是叫windo...

晨曦之光
2012/05/16
1K
0
用C#编写ActiveX控件(一)

前些日子做一个Web项目,必须自己编写一个ActiveX控件。如今的ActiveX控件大多是使用VB/C++来开发的,而我对他们并不熟悉,因此考虑使用熟悉的C#编写ActiveX控件。 首先,建立一个WinForm控件...

老朱教授
2017/09/05
0
0
【转】ActiveX控件注册的几种方法

from:http://hi.baidu.com/estellejiang/blog/item/af16e862bbd1d3d7e6113aa7.html ActiveX控件是一个动态链接库,是作为基于COM服务器进行操作的,并且可以嵌入在包容器宿主应用程序中, Ac...

夏春涛
2009/10/12
0
0
CodeFx:一站式微软开发技术解决方案

晚上在博客堂读完VSTO写的一篇文章,介绍了CodePlex上面的一个项目,叫做“All-In-One Code Framework”,代号CodeFx,简单的说,就是收集了几乎所有常见的微软开发技术的示例项目,将其打包...

嗯哼9925
01/07
0
0
MFC(ActiveX编程,孙鑫C++第十八讲笔记整理)

一:在VB中调用X控件,添加方法 project->Add components。另外可以用Object Browser来查看控件 二:在VC中创建X控件 1.新建一个X工程名为Clock,注意一个文件中可以包含多个控件。 2.保持缺...

小青_1989
2014/04/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么只有你每次提交代码,log里面会出现merge

http://www.cnblogs.com/Sinte-Beuve/p/9195018.html

踏破铁鞋无觅处
5分钟前
0
0
如何学习大数据:spark发布程序

一、对于spark程序只是用于默认的spark包的情况 直接点击pcakage 将程序进行在linux当中进行发布 客户端模式:测试 spark-submit --class com.keduox.App \ --master yarn \ --deploy-mode ...

架构师springboot
5分钟前
0
0
oracle job(定时任务)

创建 定时任务 job declare job number;BEGIN DBMS_JOB.SUBMIT( JOB => job, -- job任务的唯一标识(自动生成) WHAT => 'INSERT into TEXTL (id) VALUES(TEXT......

骑羊放狼灬
9分钟前
0
0
Spring声明式事务在抛出异常时不回滚(RollBack)

Spring声明式事务默认只在RuntimeException时Rollback(回滚),不当的try catch会导致事务不回滚。 spring事务默认运行时异常回滚,RuntimeException 配置时添加异常回滚 rollback-for="Th...

叶落花开
10分钟前
0
0
赋能时空云计算 阿里云数据库时空引擎Ganos上线

随着移动互联网、位置感知技术、对地观测技术的快速发展,时空信息已从传统GIS行业渗透到大众应用及各行各业。从静态POI(兴趣点)到APP位置信息,从导航电子地图到车辆行驶轨迹,从卫星影像...

阿里云云栖社区
12分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部