更多课程 选择中心

C/C++培训
达内IT学院

400-111-8989

VB.NET和C++环境下调用SeeSharp组件

  • 发布:简仪科技
  • 来源:简仪科技
  • 时间:2017-09-06 15:28

所有基于CLR (Common language Runtime,公共语言运行时)的语言都可以被编译为IL语言(Intermediate language,一种伪汇编语言),所以支持CLR的语言都可以以一种简单的、与原生语言风格相同的方式互相调用,这些语言之间的互相调用本质上就是IL语言的互相调用。基于CLR的语言示例如下(C++比较特殊,本身不基于CLR,但是可以支持CLR模式):

VB.NET是将VB移植到.NET平台后的语言。VB.NET在调用C#组件时只需要按照VB本身的语法规则,其他的使用方式和在C#中完全一致,同时VB.NET和C#公用相同的界面开发框架Winform,这两种语言的Winform开发组件完全通用。

C++不是完全基于.NET的语言,但是可以支持CLR模式。在C++中使用C#组件需要使用gcnew方式创建对象,生成的对象以句柄方式管理(对象本身存在于CLR的内存中)。

VB.NET调用锐视组件

VB.NET使用锐视平台组件的方式和使用VB.NET原生类库的方式完全一致。

创建工程:打开VS,左上角菜单栏:文件->新建->工程->其他语言->Visual Basic。VB.NET的工程选项如下图所示,可以选择Winform应用、控制台应用、类库。如果开发界面应用则选择第一个。点击确定。

编辑窗体:创建工程完成后默认会创建一个窗体,在ToolBox中选择待添加控件到From中。SeeSharpTools中的GUI组件也可以在该应用中使用,添加方式和C#中完全一致。

编写事件响应:编写方式和C#中完全一致:添加默认事件可以通过双击控件;也可以在属性页的事件标签中添加。

添加引用:和C#中完全一致,图例如下。

编写业务代码:完全按照VB.NET的语法使用,和C#语法的不同主要有以下几个:

使用命名控件:Import JYUSB61902

关键字不同:声明方法为

类属性和变量声明方式不同:Private Property AITask As JYUSB61902AITask;Dim sampleRate As Double

没有大括号,流程控制范围通过结束关键字标明:例如If对应End If;For对应Next;Try对应End Try;Class对应End Class

C#库中入参用ref和out修饰的入参在VB.NET下调用时无需额外使用关键字修饰。

一个完整的AITask有限点采集的代码如下:

C++调用锐视组件

C++使用锐视软件时需要在工程中配置使能CLR。C++中不支持使用Winform框架的界面开发,所以锐视平台中的GUI组件不能使用。除了锐视平台中GUI以外的组件都可以直接使用,使用方法和使用C++原生类的方式基本一致。

创建工程:打开VS,左上角菜单栏:文件->新建->工程->其他语言->Visual C++。C++的工程选项如下图所示,常用的有控制台应用和MFC应用(界面应用)。选择后,点击确定。

配置工程属性:在工程上右键->属性->配置属性->常规->公共语言运行时支持,选择“公共语言运行时支持”。

添加依赖和导入命名空间:

在代码头文件包含下使用#using “dll完整路径和名称”语句添加dll依赖;使用using namespace amespacename方式导入命名空间,示例如下

编写业务代码:代码的编写方式遵循C++的语法规则,和普通的C++对象有以下不同。

对象需要使用gcnew方法创建,创建后的对象类型为句柄,使用”^”修饰,例如JYUSB61902AITask ^aiTask = gcnew JYUSB61902AITask(0);

数组的创建需要使用gcnew的方式创建,不能使用C++的数组类型。例如:array<double> ^buf = gcnew array<double>(bufSize) {};

在C#中用out和ref字段修饰的入参可以直接声明变量使用,这些变量在执行后的值会被反写。

编译运行:在编译运行时需要将所有依赖的C#的dll拷贝到最后生成的exe执行目录下,该目录可以在工程属性->配置属性->调试->命令行里查看。

注:如果没有拷贝依赖的dll到执行目录,运行时会抛出如下错误信息:

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:如何利用手机开发C++程序
下一篇:C语言—文件的读写和输出

超全的C语言标识符知识

C指针——指针类型转换

C指针——指针和结构类型的关系

C指针——数组和指针的关系

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 搜索抖音号

    搜索抖音号:1821685962

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省