- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
非NI板卡动态链接库在虚拟仪器中的应用
非NI板卡动态链接库在labwindows中的应用方法
实验室虚拟仪器工作平台是美国国家仪器公司研制的一种通用程序开发系统,以其强大的数据采集、数据处理、数据分析和仪器控制功能在现代测控领域中得到了广泛的应用。NI公司在推出labwindows语言同时,也推出了一系列的数据采集卡,但实际应用中往往会用到第三方厂家生产的板卡,本文将介绍虚拟仪器使用非NI板卡动态链接库的方法。
第三方厂家生产的采集板卡一般会提供一个动态链接库(包含.h .lib .dll),虚拟仪器可通过调用该动态库中的函数驱动硬件。但由于虚拟仪器是基于标准C,而许多第三动态链接库是基于其他编译环境(如C++,C#等),所以经常存在参数类型不匹配等问题,使用重写动态链接库(更改.h文件)的方法,可以解决此问题。以下以SDK2000图像采集卡为例,介绍重写函数库的基本原理和程序编写过程。以下以IPM100运动控制卡为例,介绍重写函数库的基本原理和导入过程。
非NI板卡动态链接库无法与labwindows兼容主要有两方面的问题。
eq \o\ac(○,1)labwindows仅提供最基本的数据类型,动态库函数使用非标准数据类型labwindows编译系统无法识别。例如它们常常用char、short和long的类型定义代替Windows API使用的BYTE、WORD和DWORD。这种情况下要正确调用这些程序和函数,必须找到这些参数在labwindows中同等的数据类型,在头文件中预定义或者对于函数声明做相应修改,重新生成动态库。
eq \o\ac(○,2)编译环境说明不兼容。如extern C
第一步 修改头文件
eq \o\ac(○,1) LABwindows 无法识别的变量重新定义。
//************************************* LABwindows 无法识别的变量重新定义*****************
#ifndef BYTE
#define BYTE short
#endif
#ifndef LPCSTR
#define LPCSTR const char far*
#endif
#ifndef LPSTR
#define LPSTR char *
#endif
#ifndef LONG
#define LONG long
#endif
//****************************************************** eq \o\ac(○,2)将extern C { 改成
#ifdef __cplusplus
extern C {
#endif 第二步 把修改后头文件在LABwindows中打开,选择Option->Generate DLL Imput libr???ry,在弹出窗口中选OK button,选择第三方提供的DLL文件,重新生成静态库。系统提示操作成功,完成操作。如果没有成功根据系统提示重新修改头文件。
第三步 把修改后的头文件和新生成的.lib文件加于工程中,即可调用动态库中第三方提供的函数。
文档评论(0)