From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



如何使用LabVIEW PDA 为Palm OS调用外部代码



主要软件:
主要软件版本: 7.0
主要软件修正版本: N/A
次要软件: N/A

问题: 我希望在Palm OS中使用LabVIEW PDA调用外部代码,我如何使用Call Library Function Node来完成呢?

解答:

使用LabVIEW PDA 为Palm OS调用外部代码同使用LabVIEW在Windows下调用外部代码十分相似,不过因为毕竟是面向Palm OS的,所以还有略有不同的,在调用的过程中,一共需要三个文件,分别是LabVIEW的VI,Windows的stub dll 文件,还有一个包含Palm OS所需执行代码的.c或者.lib文件。

LabVIEW需要一个dll文件,该文件被称作stub dll文件,用于被Call Library Function Node调用,以保证和目标机的连接。这个dll 是一个win32的dll,该dll同您在Palm OS所需要调用的外部函数具备相同的函数原型。Stub dll中并不包含所需执行的代码,所需执行的代码会在创建的过程中从.c或者.lib文件中导入。Stub dll可以通过任何编译环境创建,譬如LabWindows/CVI 或者 MSVC++.如果使用C++的编译器,stub dll 中的函数将以extern "C"的形式被申明,以保证函数名在编译的时候不会出现轧名的现象。

包含Palm OS所需执行代码的.c 或者.lib文件也是必须的。如上所述,该文件中的函数的申明应同LabVIEW调用的stub dll文件的函数申明完全相同。(这也就是为什么stub dll 中的函数在C++中申明的时候需要以extern "C" , 否则就会出现轧名并导致函数的名称会同.c 或者.lib 文件中的函数名无法对应。)同LabVIEW需要在编译的过程中才能调用函数不同,Palm OS只需要将文本文件存储为扩展名为.c的文件即可。不过使用Palm OS的开发环境譬如Metroworks Code Warrior 来编译静态库.lib的时候,必须保证您已经进行了语法和错误的检查。

如果您已经有了一个stub的dll文件和一个.c或者.lib的文件,其余的部分就是使用LabVIEW来调用这个代码了。在LabVIEW的PDA模块中,您可以使用Call Library Node函数,并且配置该节点,使他可以正确的使用stub dll函数,同在windows下使用Call Library Node函数的方法完全相同。如想在PDA上运行VI,首先需要创建一个PDA的可执行文件,您可以通过选择Tools»Build for PDA并且在创建PDA应用程序对话框中点击Add File...添加.c 或者 .lib文件。当这样的文件一旦被建立,.prc中就包含了所需要的所有源程序,您无需将.c 或者 .lib文件分别拷贝到目标设备上。


LabVIEW PDA模块其中包含了几个范例的程序,实现了调用外部代码的功能。同样,您可以参考下面的例子,使用外部代码来查询终端设备的电池信息。



相关链接:

附件:





报告日期: 11/12/2003
最近更新: 11/22/2007
文档编号: 33BFP5QS