LV创建DLL的步骤

Posted on 2014-05-07 09:24  NoNoCare  阅读(483)  评论(0)    收藏  举报

LV创建DLL的步骤

LabVIEW编写DLL

LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G(Graphics)编写程序,是一种产生的程序是框图的形式。

通过一个简单的例子,用LabVIEW来编写一个实现三个数相加的DLL。首先编写一个子VI实现两个数相加,再编写一个VI通过调用子VI实现三个数相加。

 

为了使外部VI可以调用子VI并给它传递参数,需要给子VI创建一些Connector。创建的方法是在前面板的又上图标上右击,选择Show Connector。

 

然后将需要导出为接口的控件,用Connect Wire工具设置为Connector。方法是先点击一下控件,然后点击图标中的一个小空格。还可以设置图标哦。

 

在创建一个VI,通过子VI来计算三个数相乘的值。可以看出图标中小空格的位置,就是子VI连接点。可以通过Patterns来选择不同的接口外观。

 

 

 

 

同样的方法为刚创建的VI设置Connector。这个VI中a,b,c,a*b*c都应该导出。实际应用中并不会导出全部的数据。

 

然后在工程中选择生成一个DLL。

 

 

 

设置好DLL名字后,添加源文件,Exported VIs选择abc.vi,提示设置函数原型,因为比较简单,不用做其他的特别设置。LabVIEW已经帮你把函数原型生成出来了。

 

 

 

最后的任务就是Build了。注意这个DLL的调用方式,默认选择的是C语言的调用方式,也就是传说中的cdecl。

 

可以看到在Build目录中已经有的DLL文件,已经对应的头文件,还有LIB文件,它是静态链接DLL时必须的文件。头文件内容如下,预编译命令#pragma首先保存对齐标志,然后设为1字节对齐,然后恢复。

 

[cpp] view plaincopyprint?

  1. #include "extcode.h"   
  2.   
  3. #pragma pack(push)   
  4.   
  5. #pragma pack(1)   
  6.   
  7.    
  8.   
  9. #ifdef __cplusplus   
  10. 10.   

11. extern "C" {  

  1. 12.   

13. #endif   

  1. 14.   
  2. 15.    
  3. 16.   

17. double __cdecl Abc(double a, double b, double c);  

  1. 18.   
  2. 19.    
  3. 20.   

21. long __cdecl LVDLLStatus(char *errStr, int errStrLen, void *module);  

  1. 22.   
  2. 23.    
  3. 24.   

25. #ifdef __cplusplus   

  1. 26.   

27. } // extern "C"   

  1. 28.   

29. #endif   

  1. 30.   
  2. 31.    
  3. 32.   

33. #pragma pack(pop)  

34.现在可以选择各种方式来调用这个DLL。这里就不提及了。

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3