LabVIEW调用动态链接库dll

合集下载

labview调用动态库Dll

labview调用动态库Dll

利用LabView调用动态链接库.dll
2013.10蜗牛首先确定要实现的功能:
例如:实现c=a+b;动态库的功能是完成加法运算;
第一部分:生成dll库文件的工程;
1)利用vs2010或者VC++编译器建立一个可以生产动态库的工程,在文件》》新建》》项目,选择Visual C++下面的Win32的控制台运用程序;输入工程名和路劲;如图所示会在VC++的文件夹下建立一个test的文件夹;点击确定》》下一步;选择DLL;如下图所示
点击确定后;自动增加的函数文件如下图左边所示;蓝色阴影部分为自己增加的函数功能;
DLL内申明并定义函数的分为两种:第一种为DLL导出函数,第二种为DLL 为内部函数;其中DLL导出函数可以被其他函数调用,DLL函数只能被内部函数调用,应用程序无法调用他们。

所以在DLL中函数add之前有个关键字_declspec(dllexport)来限制,表示函数为dll导出函数。

然后在生成里面点击生成和编译;那么在所建的工程路劲的Debug文件夹下生产一个test.dll的文件;记住这个路劲;
第二部分:编写LabView程序
导出调用LabView调用动态库节点;放置到程序框图版;
双击程序框图中的图标,按如下所示设置,将路劲和函数名写好;在参数设置栏中根据我们在vc中设置的参数类型选择好,点击ok就行;
根据我们定义的a、b类型为int,编辑好界面后,运行程序,调用DLL完成。

LabVIEW平台下调用DLL实现PC_104数据采集

LabVIEW平台下调用DLL实现PC_104数据采集
(解放军炮兵学院信息工程教研室) 袁 魏 华 韩 裕 生 张 伟 伟 李 小 明
YUAN Wei-hua HAN Yu-s heng ZHANG Wei-wei LI Xiao-ming
摘要: LabVIEW 是 一 个 高 效 的 图 形 化 软 件 开 发 环 境 , 在 数 据 采 集 和 测 试 测 量 中 应 用 广 泛 。 但 在 PC- 104 硬 件 平 台 下 使 用
嵌入式计算机应用
中 文 核 心 期 刊 《 微 计 算 机 信 息 》( 嵌 入 式 与 S OC )2008 年 第 24 卷 第 4-2 期
(2)ADT700.h— ——ADT700 驱动程序头文件。
(3)ADT700.cpp— ——ADT700 数 据采 集 卡 的驱 动 程 序代 码 主
文件 , 该 文 件 中 定 义 了 操 作 ADT700 完 成 数 据 采 集 和 输 出 的 主
Call Library Function 节点, 将选择好的 Call Library Function 节
据 采 集与 控 制 系统 。该 卡 可实 现 16 路 单端 或 8 路 差分 模 拟 信
(1)WinIO.dll— ——在 Windows32 操 作 系 统 环 境 下 操 作 硬 件
号输 入 , 具有 12 位 数 字分 辨 率 , 最大 A/D 采 样 率为 100KHz, 量 端 口地 址 所 需要 的 链 接库 文 件 , 由于 Windows32 操 作 系统 采 用
在 Windows 32 操 作 系 统 环 境 下, 可 以 使 用 VC++6.0 建 立
2 PC/104 数据采集 卡 ADT700 简介
DLL 文 件 , VC++ 中 可 以 建 立 两 种 DLL: 使 用 MFC(Microsoft Function Class)的 DLL 和不使用 MFC 的 DLL。每种 DLL 都有它

再谈USB开发:LabVIEW调用DLL文件实现STM32+USB+HID双向通信

再谈USB开发:LabVIEW调用DLL文件实现STM32+USB+HID双向通信

4、结尾
到了这里,我们可以看到,LabVIEW 调用 DLL 文件是很简单的,关键是我们要知道 DLL 文件中的函数原型! 我们也可以比较一下通过 VISA 和通过 LabVIEW 调用 DLL 文件实现 USB HID 双向通 信的的优缺点。 1、通过 VISA,我们可以简单和快速地开发 STM32 USB HID 通信,不必了解底层函 数的原型,系统稳定可靠。但需要我们安装庞大的 VISA 驱动程序,而且硬件需要被 MAX 识别。 2、通过 LabVIEW 调用 DLL 文件,我们不需要安装任何驱动程序,发挥 USB HID 免 驱动的优点,但需要我们了解 DLL 文件中的函数原型,而且如果 DLL 文件做得不好的话, 有可能引起程序崩溃。 其 实 我 们 也 可 以 调 用 windows 系 统 自 带 的 hid.dll 文 件 的 , 一 般 在 以 下 路 径 : C:\WINDOWS\system32。现在的 USB HID 上位机软件,一般都是调用微软的 hid.dll 来实现 的。这个留给用户去完成了(不难的,只要知道函数原型就可以了) 。 其实 LabVIEW 作为一种通用的编程语言, 和 VC++一样, 也可以封装和创建 DLL 文件 的,有兴趣的用户可以了解一下,这里就不详细介绍了。
ห้องสมุดไป่ตู้
2、LabVIEW调用我们创建的DLL文件
LabVIEW 的“调用库函数节点”在以下路径: “互连接口”“库与可执行程序” “调用库函数节点”
我们把这个控件放在 VI 的程序框图中:
双击控件后,可以打开如下配置窗口:
“库名/路径”比较简单,就是 DLL 文件的路径了。而“线程” ,一般都是选择“在 UI 线程中运行” 。在“调用规范”中,因为是调用我们写的 DLL 文件,所以选择“C” 。如果 是调用 windows 系统中的 DLL 文件,那么选择“stdcall(WINAPI) ” 。 我们把 DLL 文件装进来之后, 就可以看到 DLL 文件中包含的所有函数了, 在 “函数名” 下拉列表中可以看到。

Labwindows调用外部DLL文件的问题

Labwindows调用外部DLL文件的问题

1. dll文件的编写(1)打开软件Labwindows/CVI,点击File->New->project新建一个工程*.prj,如图所示。

然后保存为example.prj。

(2)用同样的方式,新建一个*.c文件,然后按照下图所示,在Edit->Insert Construct->Dllmain,然后软件会自动在c文件中添加以下两个函数:int __stdcall DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)int __stdcall DllEntryPoint (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)这两个函数是DLL动态链接库必须包含的两个函数,函数的具体内容为:#includeint __stdcall DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){switch (fdwReason){case DLL_PROCESS_ATTACH:if (InitCVIRTE (hinstDLL, 0, 0) == 0)return 0;/* out of memory */break;case DLL_PROCESS_DETACH:CloseCVIRTE ();break;}return 1;}int __stdcall DllEntryPoint (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){/* Included for compatibility with Borland */return DllMain (hinstDLL, fdwReason, lpvReserved);}然后在上面C源文件中编写相关的函数,然后保存文件为example.c。

Labview DLL调用指南-非常有用

Labview DLL调用指南-非常有用

【转】labview dll的调用【转载】武汉高收入高福利公司排行榜在LabVIEW中调用DLL的整个过程及注意事项2011-09-15 21:25:44| 分类:驱动开发| 标签:|字号大中小订阅1. LabVIEW支持的数据类型< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />另外,可参考…\Program Files\National Instruments\LabVIEW 2009\examples\dll\data passing\Call Native Code.llb\Call DLL.vi。

…此VI列举了LabVIEW与C语言中兼容的数据类型。

见下表。

2. 在VI里调用DLL时,在DLL的左侧给输出端口添加初始化的值。

给输出端口添加初始化值的目的是分配内存给输出端口。

该初始化数组元素的个数至少为实际输出数组的个数。

若过小,则DLL不正常运行;若相等,则DLL正常运行;若过大,则DLL的数组输出端口除有效数据外,还有其他一些为0的非有效数据。

< xmlnamespace prefix ="v" ns ="urn:schemas-microsoft-com:vml" />3.使用DLL的步骤1)制作子VI,添加控件接口到连接端(connector)。

2)在新建的VI中添加DLL,在DLL中指定其路径,会自动添加该DLL包含的输入输出端口。

对于数值型输出,选择Point to value。

选中“Specify path or diagram”,表示动态调用该DLL,此时路径取决于最上端的路径输入端,Library name or path里输入的路径无效。

在parameters页,系统会自动添加DLL的输入输出端口,如果添加不完整,则需要再手动添加额外的输入端或者输出端。

LabVIEW动态链接库DLL基础知识

LabVIEW动态链接库DLL基础知识

0.参考示例:LabVIEW1.调用库函数节点2.配置参数2.1.返回参数类型:有Void,Numeric和String三种,如下图所示。

(1)VoidVoid is only available for return type and is not available for other parameters. Use Void for the return type if your function does not return any values.Even if the function you call returns a value, you can use Void for the return type. When the function returns a value and you select Void as the return type, the value returned by the function is ignored.(2)Numberic(pointer-sized integer),以winpcap.dll为例,如下图。

另外数据类型中的“指针大小整型”帮助文档的解释如下:(3)String目前还没碰到过,等遇到时再补充。

2.2.输入(出)参数其类型共有9种,常用的有数值、数组、字符串和匹配值类型。

2.2.1.数值需要注意的是,其传递选项有“值”和“指针”两种,分别对应值传递和指针传递。

a. 数据类型为int32函数原型为void LVint32(int32 input, int32 *output);本函数计算输入值的平方,然后将结果显示在“输出”中。

返回类型为void,input类型为int32,值传递output类型为int32,指针传递注:如将结果返回至某个控件,该控件本身即可为返回数据提供必要的内存空间。

b. 数据类型为float64函数原型为void LVfloat64(float64 input, float64 *output);本函数计算输入值的平方,然后将结果显示在“输出”中。

Labview中dll 制作和使用

Labview中dll 制作和使用

Labview 下建立dll及其使用1、建立动态连接库的C代码调用1.1建立函数原形1)后面框图程序中,调用CLF节点;2)配置一个函数原形,比如long add2(long a,long b),设置调用规程为C,其它不变,确定,退出;3)右键CLF节点,create C file,保存名字为code.cpp,以供VC++编译使用;1.2 编辑源代码文件1)将所需要的labview头文件复制到code.cpp所在目录中,包括:extcode.h platdefines.h fundtype.h;2) 打开code.cpp,添加关键词extern “c”、_declspec(dllexport)并包装;然后输入函数的功能代码,如果1个dll里面需要多个函数,则需要声明多个函数的原形。

本例子采用了2个函数,add 和mult2./* Call Library source file */#include "extcode.h"extern "C"{_declspec(dllexport) long add2(long a, long b);_declspec(dllexport) long mult2(long a, long b);}_declspec(dllexport) long add2(long a, long b){/* Insert code here 加法*/return(a+b);}_declspec(dllexport) long mult2(long a, long b){return(a*b); /* 乘法*/}2、VC++中编译产生dll1)建立project ,file→new-> win32 Dyna,mic Link Library,输入工程名,选择an empty dll project;2)添加code.cpp到source file,添加extcode.h platdefines.hfundtype.h到head files里面;3)设置dll参数project→settings→c/C++中设置参数:category:code generation ;根据函数要求可以选择1Byte\4 Byte\ 8Byte,采用默认就可以;multithread;其余默认可以;自己也可以微调;4)Build Build code.dll;5)Ok!3采用Labview测试验证。

Labview调用dll详解(C语言DLL

Labview调用dll详解(C语言DLL

Ccall和standcall的区别?自己创建的采用Ccal?你都试过吗?
4 n! W5 G+ P' I- M' B- U7 P' AC能用new来分配内存?也许我上学时学的不是ansi c
解释前先说一句废话,只有多了解C才能调用好DLL。LV自带的DLL解析(也就是导入共享库)是没用的。下面继续说这个函数。extern "C" ZLDS10X_DLL_API SENSOR_HANDLE ZLDS10X_DLL_stdcall ZLDS10X_Open(char * portnum , int baud , int timeout , int address); 这里面有四个参数一个返回值。SENSOR_HANDLE 是头文件里面用宏定义的数据类型int 。在返回值选项里面“类型”我们选择“数值”;“数据类型”我们选择int16。值得注意的是,由于C版本众多,而且标准C对于数据类型没有完全规定死,数值的“数据类型”有时候要参看具体的编译器。标准C规定:int不小于16位,long不小于32位。一般可以int选择I16,long选择I32(关于有符号数和无符号数的区别见C,不解释,64机另论)。char*表明传递的字符串,C语言的字符串等价于U8数组,所以“类型”我们选择“数组”;“数据类型”我们选择U8, “数组格式”选择“数组数据指针”。另外三个参数不用多解释。传递的是数值,数据类型选择好就可以了。看起来我们配置好了这个函数,对吧,但是运行就会得到一个-1的结果。-1代表错误。其中的原因在于C语言和labview的不同。C语言里面的字符串是以NULL(\0)结束的,但是labview不是,所以我们要将这个因素考虑进去,具体做法是:使用连接字符串。然后转化为U8,这样就可以啦。顺便解释一下,open的作用是打开串口,原型是C里面的creatfile函数,串口通信的第一个函数,要记得加上\0,否则程序很多会出错误!!值得注意的是,C编译器以及32位机和64位机的差异在Labview调用时也有体现,所以造成实际的调用十分麻烦,要很好的理解C的基础知识!下篇介绍令大家郁闷的指针的调用!

如何从LabVIEW中调用动态链接库DLL

如何从LabVIEW中调用动态链接库DLL

问题:如何从LabVIEW中调用动态链接库DLL解答:要从LabVIEW中调用动态链接库(DLL),你需要首先确定是哪种类型的DLL。

基本上有两种类型的DLL需要考虑:C/C++ DLL 和Microsoft .NET assembly. C/C++ DLL 用C, C++, 或其他编程语言生成(除了.NET 语言) 比如Java, Fortran, 或Visual Basic 6.0. .NET DLL 也被称为".NET assembly" 或者就是"assembly". 这个术语的区别在于.NET DLL 与其他DLL的工作方式不同. .NET DLL使用Common Language Runtime (CLR) 和.NET Framework "处理" DLL中的函数.如果DLL是C/C++ DLL:1找到头文件(*.h) 或者函数原型声明.2确定你需要调用的function(s) . 注意函数的参数是否包含了原始数据类型参数比如int, char, double, 等等或者是否包含了复杂数据类型比如clusters.3如果函数没有包含复杂数据类型并且你有头文件(*.h), LabVIEW中一个很好的工具可以帮你简单地导入DLL (并且会帮助你创建DLL的整个库). 你可以在Tools?Import?Shared Library (.dll)...中找到该工具; 按照向导进行下去.4如何函数不含有复杂数据类型但是没有头文件(*.h), 首先确定你使用的是C/C++ DLL因为大部分的编程环境将对这种DLL 生成头文件. 如果你确实在处理C/C++ DLL, 找到该函数的相关文档,因为你需要确定那些在DLL中被调用的函数的参数. 一旦参数被确定,使用Call Library Function Node LabVIEW中的函数手动调用该函数。

基于LabVIEW的动态链接库的设计与调用

基于LabVIEW的动态链接库的设计与调用

收稿日期:2009-10-13作者简介:苗立交(1980),男,硕士研究生,研究方向为智能仪器仪表。

基于LabVIEW 的动态链接库的设计与调用苗立交1,杨新华1,王巍2(1.兰州理工大学电气工程与信息工程学院,兰州730050;2.本溪供电公司,辽宁本溪117000)摘要:介绍了具有USB 通信接口的动态链接库设计方法,并通过实例阐述了动态链接库关键的设计技术和具体调用步骤。

实验证明动态链接库技术与LabVIEW 软件相结合的机制解决了USB 总线与LabVIEW 软件通信的问题,提高了数据传输效率。

关键词:USB ;CY7C68013;LabVIEW ;动态链接库中图分类号:TP334.4文献标志码:A 文章编号:1000-0682(2010)04-0071-03Design and call the dynamic link library based on LabVIEWMIAO Lijiao 1,YANG Xinhua 1,WANG Wei 2(1.College of Elec &lnfo Eng ,Lanzhou University of Technology ,Lanzhou 730050,China ;2.Benxi Power Supply Company ,Liaoning Benxi 117000,China )Abstract :The method of designing the USB communication interface dynamic link library is de-scribed.The dynamic link library key design techniques and specific steps in the call is explained by ex-amples.It is clear that the combined method of the dynamic link library technology and LabVIEW soft-ware resolve the communication problem between them.Key words :USB ;CY7C68013;LabVIEW ;dynamic link library0引言USB 总线因具有热插拔、即插即用、共享式接口、接口体积小、传输速度快的优点,所以越来越多的测试仪器采用USB 接口实现上位机与下位机通信。

LabVIEW外部调用DLL

LabVIEW外部调用DLL

LabVIEW与外部程序间DLL文件的调用什么是DLL文件DLL(动态链接库)文件是Dynamic Link Library的缩写形式,是一种允许程序共享执行特殊任务所必需的代码和其他资源的可执行文件。

其多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。

Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。

动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。

这些函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。

DLL还有助于共享数据和资源,多个应用程序可同时访问内存中单DLL副本的内容。

总之,DLL是一个包含可由多个程序同时使用的代码和数据的库。

动态链接是相对于静态链接而言的。

所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。

换句话说,函数和过程的代码就在程序的exe文件中,该文件包含了运行时所需的全部代码。

当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪费了宝贵的内存资源。

而动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息)。

仅当应用程序被装入内存开始运行时,在Windows的管理下,才在应用程序与相应的DLL之间建立链接关系。

当要执行所调用DLL中的函数时,根据链接产生的重定位信息,Windows才转去执行DLL中相应的函数代码。

由于向运行于Windows操作系统下的程序提供代码、数据或函数,程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。

在Windows操作系统中,DLL对于程序执行是非常重要的, 因为程序在执行的时候, 必须链接到DLL文件, 才能够正确地运行。

而有些DLL文件可以被许多程序共用,因此程序设计人员可以利用DLL文件, 使程序不至于太过巨大。

37.如何调试 LabVIEW 调用的DLL

37.如何调试 LabVIEW 调用的DLL

如何调试LabVIEW 调用的DLL
问题(Frank):
我用Labwindow 编写了一个读文件的动态库, 即向动态库传递文件路径及文件名和某特定字符串,然后通个三个参数返回读到的值, 在labVIEW里调用该动态库,结果返回值老是显示打开文件失败, 不知错误出现在那里,另外在LabVIEW里如何调试确定传到动态库的参数是符合函数参数格式的呢?该函数在Labwindow里调试没有问题.请大侠指点迷津,不胜感激!
回答:
我好久没有用过CVI 了,计算机上也没有装,不过用CVI 来调试,应该和用VC 来调试原理是相同的,步骤也想类似。

我就以VC 为例说明一下。

首先在Debug 模式下build 出一个DLL 来。

(VC 7.1 即便是release 模式下也可以设置断点,单步运行,但别的编译器不一定行。

)然后用这个新的Debug DLL 覆盖原有的DLL。

关闭LabVIEW,点击VC 菜单Debug->Start (F5)。

因为工程生成的是不可以直接执行的DLL 文件,这时VC 会弹出一个对话框,问你用什么运行。

选择浏览,然后找到LabVIEW.exe。

(这个可执行文件也可以在工程属性中Debugging->Command 一栏设置。

)之后,VC 就会把LabVIEW 调用起来。

在VC 中设置好断点。

在LabVIEW 中运行想要调试的VI。

程序会停在你设置断点的地方。

LABVIEW调用动态链接库

LABVIEW调用动态链接库

参数类型
说明
Numeric 型参数有以下几种数据类型:
z 8、16、32 和 64 位符号和无符号整型(Signed or Unsigned Integer)
Numeric
z 4 字节单精度类型(4-byte single)
z 8 字节双精度类型(8-byte Double)
利用“Pass”下拉列表指定传递参数指针或是传递参数的指针。
Array 型参数的数据类型同 Numeric 型参数的数据类型;
通过 Dimensions 指定数组的维数;
Array Format 有以下几种选项:
Array
z Array Data Pointer 传递一维指针到数组值
z Array handle 传递一个指向数组每一维的 4 个字节指针的指针,其后为数组
long add_num(float *p, long size, float *sum);
图 6-14 CFN 的配置结果
i) 确定后会发现 CFN 根据配置自动进行了更新更新后的情况如右图示。 2. 生成.C 或.C++文件,完成实现函数功能的代码并为函数添加 DLL 导出声明;
在 CFN 节点上通过右键菜单选择“Create .C File…”生成 mydll.c 文件,其内容如下:
in UI Thread”方式调用 DLL,调用的函数将直接在用户线程中运行。另外一种方式为递归方式 “Reentrant”,在这种情况下可以允许多个线程同时调用 DLL 中的函数。但要确保正常调用,必须使 DLL 中的代码线程安全。以下是一些最基本的线程安全特性:
a. 代码不含有未受保护的全局数据(如全局变量,文件); b. 代码不访问硬件(即不含有寄存器一级的代码); c. 代码不调用非线程安全的函数、DLL 或者驱动; d. 代码使用信号量或者互斥量来保护全局量; e. 代码被一个非递归的 VI 调用时为线程安全。

labview调用dll方法+

labview调用dll方法+

* Variable Name : CRC_TABLE_L
* Description : CRC Table.
*******************************************************************************/
const unsigned char CRC_TABLE_L[256]=
*******************************************************************************/
const unsigned char CRC_TABLE_H[256]=
{
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
// VCdll.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "UniversalDefine.h"
extern "C" __declspec(dllexport) unsigned int CRC16(void *pbuf, unsigned char len) ;
0x78,0xB8,0xB9,0x79,0xBB,0x7B,0x7A,0xBA,0xBE,0x7E,0x7F,0xBF,0x7D,0xBD,0xBC,0x7C,
0xB4,0x74,0x75,0xB5,0x77,0xB7,0xB6,0x76,0x72,0xB2,0xB3,0x73,0xB1,0x71,0x70,0xB0,

如何在LabVIEW中使用动态链接库

如何在LabVIEW中使用动态链接库
如何在 LabVIEW 中使用动态链接库
Rich Chen 2010.08.12
为了给同学帮忙,才接触的 LabVIEW。用 LabVIEW 的图形语言来处理数据不是一件 容易的事,主要是不够灵活,有时不得不借助 C 这样的语言来处理。在网上也搜集了不少 资料,先后尝试了 MATLAB 脚本控件、CIN 控件方法,但都没有成功。无奈之下又尝试了 一下 DLL 控件,不管怎样是成功了。分享一下,希望对大家有所帮助。
VI 工程由 LabVIEW2009 中文版开发,DLL 工程由 VC++6.0 开发。 1)创建一个 VI 工程,在程序框图中右击空白处,点击展开按钮展开快捷菜单的,选 择互联接口,将鼠标移动到库与可执行程序上会弹出其菜单项,单击调用库函数节点,就可 将其放到程序框图中。
2)右击调用库函数节点控件,选择菜单项—配置,或者双击控件,都会出现调用库函 数对话框。可以通过这个对话框设置调用库函数节点的输入输出参数,以便生成被调用函数 的原型。下面以求一维数组的最大值及其索引号为例进行介绍。
int32_t i; *max=0; if(array!=NULL) {
for(i=0;i<size;i++) {
if(*max<array[i]) {
*max=array[i]; *index=i; } } } else return 0;//空数组 return 1;//数组有效 } 8)创建头文件。选择菜单 files 的 new,创建一个 C/C++Hearder File 文件,命名为 dll。
单击 OK。选择工作区的标签 FileView,打开 Source Files 文件夹,双击上一步创建的源 文件 dll.cpp。下面就可以下函数的实现代码了

70.调用动态链接库 2 - CLN 的配置选项

70.调用动态链接库 2 - CLN 的配置选项

调用动态链接库 2 - CLN 的配置选项双击一个CLN(Call Library Function Node)节点,就会出现它的配置对话框。

这个对话框有四页。

第一页是被调用函数的信息。

Library name or path 是DLL文件名和路径。

在系统路径下的DLL,直接输入文件名即可,否则需要全路径。

在这里知名的DLL是被静态加载的程序中的。

当调用了这个DLL的VI被装入内存时,DLL也同时被装入内存。

LabVIEW 也可动态加载DLL。

只要把Specify path on diagram 选上就可以了。

选择了这个选项,在Library name or path 中输入的内容就无效了。

取而代之的是,CLN 节点多出一对输入输出,用于指明你需要使用的DLL的路径。

这样,当VI被打开时,DLL不会被装入内存,只用程序运行到需要使用这个DLL 中的函数时,才把其装入内存。

Function name 及需要调用的函数的名称。

LabVIEW 会把DLL中所有的暴露出来的函数都列出,用户只要在下拉框中选取即可。

Thread 栏用于设定哪个线程里运行被调用的函数。

它的具体含义可以参考《LabVIEW 程序中的线程 4 - 动态连接库函数的线程》。

Calling convention 用于指明被调用函数的调用约定。

这里只支持两种约定:stdcall 和C call。

它们之间的区别在于,stdcall 由被调用者负责清理堆栈;C call 由调用者清理堆栈。

这个设置错误时,可能会引起LabVIEW 崩溃,所以一定要小心。

反过来说,如果LabVIEW 调用DLL 函数时出现异常,首先就可以考虑这个设置是否正确。

(Windows API 一般使用的都是stdcall;标准C的库函数大多使用 C call。

如果函数声明中有类似__stdcall 这样的关键字,它就是stdcall 的。

)第二页是函数参数的配置,这是最复杂的部分,留待下次详细分析。

怎样在LabVIEW中调用Win32动态连接库_DLLs_

怎样在LabVIEW中调用Win32动态连接库_DLLs_

收稿日期:1999212218 作者简介: 陶以政 (1971-),男,四川广安人,工程师,主要研究方向:CAD/CAM 应用研究; 潘振显 (1941-),男,江苏苏州人,研究员,主要研究方向:自动控制、CAD/CAM 应用研究.文章编号:1001-9081(2000)06-0072-02怎样在LabVIEW 中调用W in32动态连接库(D LLs )陶以政,潘振显(中国工程物理研究院,四川绵阳621900)摘 要:LabVIEW 是美国国家仪器(National Instruments )公司开发的基于图形化的程序设计语言(G 语言)。

以Windws 95/98/NT 中USER32.D LL 库中的信息框函数MessageBoxA 为例,说明在LabVIEW 中怎样调用Win32动态连接库的方法。

关键词:虚拟仪器;LabVIEW ;动态连接库(D LLs )中图分类号:TP311.13 文献标识码:A LabVIEW 主要用于开发数据检测、数据测量采集系统、工业自动控制系统和数据分析系统等领域,它是虚拟仪器系统的主要开发工具。

LabVIEW 利用NI 公司相关的硬件产品驱动程序,根据用户的需求开发虚拟仪器系统。

我们利用LabVIEW 开发自动控制系统时,通过自己开发的动态连接库,在LabVIEW 应用中获得了成功。

1 LabVIEW 中调用Win32动态连接库 图1 图2在LabVIEW 中利用Call Library Function 节点(node )可以较容易地实现访问动态连接库。

下面是在LabVIEW for Windws 95/98/NT 中调用动态连接库的主要特点:・调用D LLs 可以用C 或stdcall 调用习惯;・能用整数或浮点数的任意维数组;・不需要关心用巨大模式(H UGE )、近(NE AR )或远(FAR )指针;・LabVIEW 字符串能通过C 或Pascal 字符指针;・可以用空(V oid )、整数(integer )和浮点数(Float )指针为返回值。

利用LabVIEW导入工具实现DLL调用

利用LabVIEW导入工具实现DLL调用

利用LabVIEW导入工具实现DLL调用
郑铭
【期刊名称】《电子测试》
【年(卷),期】2009(000)006
【摘要】本文在介绍了动态链接库程序概念的基础上,以台湾泓格科技股份有限公司ISI-AD32、32通道隔离A/D数据采集卡为例,介绍了在LabVIEW 8.5开发环境下,通过利用LabVIEW开发环境中"导入"工具实现DLL调用方法.该方法克服了程序设计者通常在开发环境中通过CLF节点进行调用繁琐、各种不同类型的变量转换不正确时会造成不能控制的问题,及对类似的硬件提供的LabVIEW驱动版本太低或没有驱动,没有办法控制的问题同样可以解决.该方法简单实用,非常方便快捷,希望广大程序设计广为利用.
【总页数】4页(P33-35,39)
【作者】郑铭
【作者单位】91370部队,福建省福州市,350014
【正文语种】中文
【中图分类】TP312
【相关文献】
1.基于LabVIEW环境下调用DLL实现仪器控制 [J], 侯博;廖醒宇
2.嵌入式LabVIEW调用DLL实现数据采集 [J], 黄佳钰;邓焱;张锦杰
bVIEW平台下调用DLL实现PC/104数据采集 [J], 袁魏华;韩裕生;张伟伟;李
小明
4.基于调用DLL的LabVIEW数据采集的实现 [J], 张亿雄;顾海明
bVIEW 8.6报表工具包生成和调用DLL问题分析及对策 [J], 胡胜文;万加林因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档