没有合适的资源?快使用搜索试试~ 我知道了~
labview的动态链接库的编写
需积分: 9 22 下载量 24 浏览量
2010-06-22
16:01:37
上传
评论 3
收藏 1.01MB DOC 举报
温馨提示
试读
20页
主要是教你怎么编写自己的动态链接库,挺不错的!自己找了好久!有给予VC++的和直接使用labview编写的!
资源推荐
资源详情
资源评论
中动态链接库的调用是通过 节点实现的,如图 所示。
可被用来调用 位的 , 系统的 ! 或 "# 中
的 $。
2 创建共享库文件
创建 可以调用的外
部代码库,需要完成下面 项任务:
在 中建立函数原型;完
成 文件;在外部 中创建
%&。
2.1 在 LabVIEW 中构造 DLL 函数原型
首先新建一个 并命名为“!'()。然后通过执行 *+(*
在 ! 中放置 节点,点击右键选择“, )进行配置。
-! 输入“( .!), ( 选择“);将 %! 项中的
/01 改为“),其中 01 选择为 -!,01 为 $
。通过点击“+%!2)按钮增加其他参数,各自的配置如表 所示。
经过上述设置之后,
%1 指
示框中应出现如下信息:
( .!345
6534( 7至
此, 节点设置完毕,返
回 ! 将会发现
节点下面增加了 8 个选项,
分别对应于刚才设置的 8 个
参数。在 图标的右键中
选择“'),保存
为“!')'
2.2 完成.c 文件
打开 !',可见其代码如下:
这个简单的例子不需要头文件,当创建更复杂的共享库文件时,必须包含所有相关的头文
件。例如,当需要使用 管理函数时,必须包含 (',该文件位于
安装目录下的 文件夹中。
2.3 在外部集成开发环境(Integrated Development Environment,IDE)中完成
DLL 文件的创建
以 2
99
:'; 为例。打开“!'),在 ( .! 的声明前增加
.1#1:
点击 *- 并在随后出现的对话框中选择“!<),%&
-! 取为“!);点击“=>)之后,选择“+!11&)。然后执行 %&
*+%&* 并将“!')程序加入。接下来设置 %&*$
的 ?
99
选项,其设置如图 所示。
最后执行 @*@
!',2
99
将创建' 文件并将其放入
文件夹中。至此,就完成了
可供其他程序调用的' 文件的创建。
3LabVIEW 中 DLL 文件的应用举
例
文件在多种领域被广泛应用,自动化测量中的仪器控制就是很有潜力的市场。越来越
多的仪器厂商在推出新型智能仪器的同时,会提供针对性很强的动态链接库文件,其中包含可
以分别实现该仪器多种测量功能的子函数,供用户开发测量控制程序时调用,这可以大大加速
用户开发基于计算机的自动测量系统的进程。
0<# 公司提供了针对其高性能数字取样示波器 0$A;;;@ 的 <A<. 文件,
通过调用该文件,可以方便地生成测量模块,进而组建更为复杂的系统。下面给出调用 <A
<. 创建“设置水平轴参数”子 的例子。其框图程序如图 所示。用到的函数是该 文件
中的 <A<.$B6%!,设置的参数包括 5!5
!5615 等。由于 的代码封装,整个
程序非常简洁。因为有了这个 文件,用户在开发时不需考虑底层问题,各参数的设置通过
“)即可生成,减小了设计测量系统的工作量。在大型系统的开发过程中,根据
需要创建实现某些功能的 文件,自己或其他开发者在今后的开发工作中都可以很方便地调
用。
4 结语
介绍了动态链接库文件
的特点后,以 和
2
99
为编
程工 具,详细 介绍了
文件的创建过程。提供了开
发自动测量系统时调用
文件编写子函数的例子 ,并给出了编程结果。文中提供的编程方法可推广到其他动态链接库程
序的编写。 通过编写和调用 文件,可以显著提高工作效率,在资源共享及继承性方面有
着尤为突 出的优势。
参考文献
[]杨乐平' 高级程序设计[]'北京:清华大学出版社,;;'
[]-!5/C2[D];;;'
[]0<#5'0<#$+?0$A;;;@% !!E[D];;'
什么是 DLL 文件
(动态链接库)文件是 !< 的缩写形式,是一种允许程序共
享执行特殊任务所必需的代码和其他资源的可执行文件。其多数情况下是带有 扩展名
的文件,但也可能是 F 或其他扩展名。 提供的 文件中包含了允许基于
的程序在 环境下操作的许多函数和资源。动态链接提供了一种方法,
使进程可以调用不属于其可执行代码的函数。这些函数的可执行代码位于一个 中,该
包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。 还有助于
共享数据和资源,多个应用程序可同时访问内存中单 副本的内容。总之, 是一个
包含可由多个程序同时使用的代码和数据的库。动态链接是相对于静态链接而言的。所谓
静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。
换句话说,函数和过程的代码就在程序的 # 文件中,该文件包含了运行时所需的全部代
码。当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪费了
宝贵的内存资源。而动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中
去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息)。仅当应用
程序被装入内存开始运行时,在 的管理下,才在应用程序与相应的 之间建
立链接关系。当要执行所调用 中的函数时,根据链接产生的重定位信息,
才转去执行 中相应的函数代码。
由于向运行于 操作系统下的程序提供代码、数据或函数,程序可根据
文件中的指令打开、启用、查询、禁用和关闭驱动程序。在 操作系统中5 对
于程序执行是非常重要的5因为程序在执行的时候5必须链接到 文件5才能够正确地运
行。而有些 文件可以被许多程序共用5因此程序设计人员可以利用 文件5使程序不
至于太过巨大。但是当安装的程序越来越多5 文件也就会越来越多5如果当删除程序的
时候5没有用的 文件没有被删除的话5久而久之就造成系统的负担了。
通过使用 ,程序可以实现模块化,由相对独立的组件组成。因为模块是彼此独立
的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。此外,可以更
为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,可能有一个工资
计算程序,税率每年都会更改,当这些更改被隔离到 中以后,我们无需重新生成或安
装整个程序就可以应用更新。
总的来说,使用 文件有以下好处:、多个应用程序可以共享代码和数据。比如
=G 软件的各个组成部分有相似的外观和功能,这就是通过共享动态链接库实现的 。
、在钩子程序过滤系统消息时必须使用动态链接库。、动态链接库以一种自然的方式将
一个大的应用程序划分为几个小的模块,有利于小组内部成员的分工与合作,而且各个模
块可以独立升级。如果小组中的一个成员开发了一组实用例程,他就可以把这些例程放在
一个动态链接库中,供其他成员使用。8、实现应用程序的国际化,往往需要使用动态链
接库。使用动态链接库可以将针对某一国家、语言的信息存放在其中。例如,在使用
+116 生成应用程序时,我们可以指定资源文件使用的语言,这就是通过提供不同
的动态链接库实现的。对于不同的版本,使用不同的动态链接库,常用的一些编程软件均
可以编写 文件。 不是独立运行的程序,而是某个程序的一个部分,它只能由所属
的程序调用,用户不能,也不需要打开它。
LabVIEW 调用 DLL 文件
支持通过调用 文件的方式与其它编程语言混合使用。比如,在实际的
工程项目中,用户可以用 99语言实现软件的运算部分,并把这些功能构建在 文件
中,然后再使用 编写程序的界面部分,并通过调用编写好的 来调用运算部
分的功能。
中是通过 -(-)节点来完成 文件调用
的。创建一个新的 ,右击程序框图,在 % 中依次选中 (
HHI# 工具栏即可找到该节点(图 )。
图
-
将节点放置在程序框图中,双击会出现它的配置对话框,共有四页。第一页用于填写
被调用函数的信息(图 )。 !1 需给出 文件名和路径,操作系
统路径下的 文件,直接输入文件名也可调用,否则必须输入全路径。在这里已经给出
名字的 是被静态加载到程序中的,也就是说当调用了这个 的 被装入内存时,
同时被装入内 存。 也可动态加载 ,只要勾选上 $121
! 的选项即可。选择了这个选项,在 !1 中输入的内容就无效
了,取而代之的是 -节点多出一对输入输出,用于指明所需要使用的 的路径。这
样,当 被打开时, 不会被装入内存,只用程序运行到需要使用这个 中的函数
时,才把其装入内存。! 是需要调用的函数的名称, 会把 中
所有的暴露出来的函数都列出,用户只要在下拉框中选取即可。0 栏用于设定哪个
线程里运行被调用的函数。用户可以通过 -节点的配置面板来指定被调用函数运行所
在的线程。-的线程选项非常简单,只有两项: /" 和 /
。 的程序框图上直接可以看出一个 - 节点是选用
图
填写被
调用函
数信息
的什么
线程。
如 果
/
"
剩余19页未读,继续阅读
资源评论
vbzhangyixuexi
- 粉丝: 2
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_2024-05-21-17-06-42-64_2332cb9b27b851b548ba47a91682926c.jpg
- 毕业设计参考 - 基于树莓派、OpenCV及Python的人脸识别
- node-v18.20.2-linux-arm64
- 222222222222
- 16张相机标定图片,可复现本文畸变矫正
- dbeaver-ce-23.3.1-x86_64-setup.zip
- 基于X86 AVX2指令的快速卷积实现
- VMware-ESXi-7.0U3n-21930508-depot.zip文件
- MySQL 在 Windows 系统下的安装教程.zip
- Access文件数据库访问的客户端
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功