首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

LabVIEW中如何调用Windows API

LabVIEW中如何调用Windows API

1、Windows API简介: fficeffice" />


1.1 简介:


Windows 作为多线程系统除了协调应用程式的执行、分配记忆体、管理系统资源…之外, 她同时也是一个很大的服务中心, 呼叫这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到开启视窗、描绘图形、使用周边设备…等目的, 由於这些函数服务的对象是应用程式(Application), 所以便称之为 Application Programming Interface, 简称 API 函数。 


1.2 但 Windows API 与 C 语言最亲近 


虽然说呼叫 Windows API(以下简称 API 或 API 函数) 是每一个应用程式的权利, 但不可否认的 API 却与 C 语言最亲近, 因为 API 函数在参数的传递上就是以 C 语言为标准。


但这并不表示 LV 程式不能呼叫含有参数的 API 函数, 如果传递的参数是单纯的资料型别, 例如「整数」, 则 LV 与 C 语言还是相通的, 如果是特殊的资料型别(包含「字串」),则必须遵循一定的规范, 否则不是无法得到正确的结果, 就是因为违反规定而被踢出系统。

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
2、使用 Windows API 的难处  
当我们要开始使用 API 时, 必须知道叁件事情:(1) 要呼叫哪一个 API 函数;(2) 如何在LV中调用 API 函数;(3) 如何传递参数。 

2.1 要呼叫哪一个 API 函数

这是以上叁件事情当中最困难的一件, 主要的原因是 Windows 的 API 实在太多了, 大约有 1500 个, 这还不包含 OLE、ODBC…等特殊的 API, 此外, 如果我们把 API 按不同性质加以分类,则使用每一类 API 函数所应具备的背景知识亦各有不同, 以系统注册区相关的 API 函数为例, 就必须先了解 Windows 如何安排系统注册区, 以及存取系统注册区的方式。 

不过也不必被 1500++ 个函数给打退堂鼓了, 因为不是所有的程式设计都要仰赖 API, 当我们面对一个问题时, 首先还是寻求 LV 的解决方案,如果 LV 实在无法解决,才考虑使用 API,例如LV6.0以前对注册表操作需要调用API,但现在新的版本有专门的模块(但实质上与调用API一样,只是操作起来方便了)。

要想了解哪些是常用API,它们的功能,所属的动态连接库,可以查看一些手册,也可以查看一些VB中应用的例子(笔者就是从VB的代码中熟悉了一些API,然后知道如何在LV中调用它们)。

2.2 如何在LV中调用 API 函数。 

在LV中设置API其实与调用其他.DLL相同.选择模板中的Functions->Advanced->Call Library Function Node,然后点击右键, 从快捷菜单中选择Configure. 出现一对话框如下:
使用Browse到Windows(或WinNT)下面的system32中先选择API的库函数,如User32.dll,然后在FuncName的下拉式菜单中选择你需要的函数,在Calling Convention中选择”stdcall(WINAPI).下面的工作是设置传递参数.

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
2.3 如何传递参数

LV的参数类型中提供了几种在LV中常用的类型:

Numeric(数值):整数(8-,16-,and 32-bit signed and unsigned integers),单精度(Single-precision)和双精度(double-precision);

Array(数组):实现数组类型传递;

String(字符串): 实现字符串数据传递;

ActiveX: 处理ActiveX数据;

Waveform/Digital Waveform/ Digital Table:主要为LV数据传递的类型,一般API涉及不多。

Adapt to Type:适合自定型参数。

由于 API 采用了 C 语言的参数传递方式, 而 C 语言的参数传递又与 LV有着不小的差异, 以致不少呼叫 API 所造成的错误都发生在参数传递时, 而本期我们并不想花太多的篇幅放在如何传递参数上面,以后有机会将放在如何调用dll方面的文章中作详细讲解。下面举些例子,来说明如何调用API,我想让大家明白在LV中调用API其实不难。希望对大家入门有帮助。

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
了解和查阅API 函数的功能和参数设置,主要途径有:a)查阅介绍Windows API的图书; b)查阅微软MSDN Library有VC定义的原型; c)一些编程网站的在线查询; d)通过学习VB中如何调用了解API 函数的例子。

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
返回列表