- 6
- 0
- 约2.76千字
- 约 5页
- 2022-08-16 发布于江苏
- 举报
在CVI 中如何使用C++语言
How to Use C++ Language in CVI ZHANG Fu-song
(Unit 92941 of PLA,Huludao 125001,China)
:This article introduced a programming method of using C++ in CVI through DLL, giving an detailed example and validating itsavailability. The using C++ language programming in CVI is implemented.
引言
LibWindows/CVI 是美国国家仪器公司(简称 NI 公司)推出 的交互式 C 语言开发环境,CVI 将功能强大、使用灵活的 C 语言 与用于数据采集分析和显示的测控专业工具有机地结合起来, 它 的集成化开发环境、 交互式编程方法、 函数面版和丰富的库函数 大大增强了 C 语言的功能,为熟悉 C 语言的开发人员建立检测系 统、自动测试系统、数据采集、过程监控、虚拟仪器等提供了一 个理想的软件开发环境, 在我国已经得到了较为广泛的应用。
而 C++吾言作为 C 语言的超集,以其面向对象、封装、继承 和多态的特点在软件开发领域后来居上, 它的面向对象的特点更 符合人们的思维方式,其运行代码要比 C 语言简洁、易于理解,
尤其是新的标准中增加了模板、通用容器、
Template Library )算法等内容,模板的引入对
STL(Standard
C++程序设计者 来
说是一场革命,自此,C++程序设计焕然一新。
两种语言各有特点,各有所长, C++语言兼容 C 语言,对于一个习惯于面向对象设计的程序员来说, CVI 是面向过程的语言,
用大量的回调函数来处理消息, 无疑是一种痛苦, 想用别的语言 来代替,又有困难, CVI 中有很多专有的函数和仪器面版控件, 别的软件不能提供替代的产品, 那么, 能不能即使用 CVI 来开发 软件,又能使用 C+啲新增功能哪?能,就是通过动态链接库来 实现。
使用动态链接库(DLL)将 C++特性过程化
DLL 是一种基于 Windows 的程序模块,不仅包含函数,还可 以包括数据和各种资源,库中的函数可以被应用程序或其它的 DLL 调用。使用 DLL 有如下的优点:
如果不同的程序使用相同的 DLL,只需在内存中将 DLL 装 载
一次,节省了内存。
可以使用 DLL 的不同版本来代替当前的 DLL。只要 DLL 中 子例程有相同的参数,则可以使用新版本的 DLL 运行程序,而不 用重新编译它。
如果有一个非常大且需要不断更新或改正错误的应用程 序,则可以将它划分为多个执行部分与 DLLo 这样允许我们只对需要改变部分进行操作,而不用对整个大执行文件进行改动。
支持多国语言。 开发者可将依赖于语言的函数和资源分离出来,建立 DLL 的不同版本来保存不同语言的字符串, 然后在运 行时改变语言; 或可以设计图标与位图, 而后在不同的应用程序 中
使用它们,这是实现软件商品国际化的一项技术。
DLL 独立于编程语言。这意味着在 VC+环境中开发的 DLL 可以在 C++ Builder 、VB、CVI 等环境下使用。
可以看出,DLL 是由函数组成的。而在面向对象的程序设计 中, 程序是由不同的对象组成的, 程序运行过程就是调用对象的 方法; 所以,如果我们需要使用 C++的新特性,就需要把调用对 象的方法改为调用函数,这样,就把调用接口转换成 C 语言格式 了,就可以使用C+啲新特性了。
实现方法
下面以在 DLL 中实现 C++中的浮点型堆栈 stack 为例。在 C++ 中使用浮点型堆栈非常简单,只要定义一个 stack 类型变量, 就可以使用此变量的各种方法了, 而在 CVI 中则必须自己编写两 个子程序来实
现压栈、出栈的方法。在本例子中,只给出
数,分别实现了压栈和出栈的功能。
1)在 VC+环境下新建 DLL 工程,进入 VC++选择 New 选 择
2 个函
Projects ,选择 Win32 Dynamic-Link Library ,给出工程名 程(本例
是 DLL),选择一个路径来保存文件,选择 0K 按 钮 , 进入下一个页面,选择 A Simple DLL Project ,选择 Finish 按 钮, 进入下一个页面,选择 0K 按钮,则生成有关的框架文件, 在左面的小窗口中选择 File View 菜单,选择 Source Files , 选择
DLL.cpp ,双击该文件,如下所示,生成一个框架文件:
#include stdafx.h
BOOL APIENTRYD
原创力文档

文档评论(0)