在TestStand的C/C++ DLL中调用带有C结构体做为参数的函数



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

问题:
我的DLL中的一个函数带有一个结构体参数。我在TestStand的目录<TestStand>\Examples\StructPassing\LabVIEW下找到了自带的例程。我如何设置TestStand使其能够使用该函数做为代码模块?

解答:
很少的步骤就可是使您从DLL中调用函数,并传递您正在使用的结构体引用。您可能要:
  1. 创建一个数据类型以匹配该结构体;
  2. 设置这个新步骤的属性以允许其做为C结构体进行传递;
  3. 为这个新类型创建一个变量;
  4. 使用 C/C++ DLL 适配器并插入一个步骤,该步骤代码是函数调用。

下面是上述每个步骤更详细介绍:

1. 创建一个数据类型以匹配该结构体。

创建一个您结构体镜像的新的数据类型。使用TestStand容器类型做为C结构体的类比类型。插入适当的域以匹配结构体中的每个元素。

下面提供的文档链接给出了完成这一步骤的有用信息。

2. 设置这个新步骤的属性以允许其做为C结构体进行传递。

一旦创建了数据类型,您可以右键点击类型并选择属性。属性对话框包含 C 结构体传递标签页,您能允许这个步骤对象以结构体方式传递。

同样在这个 C 结构体传递标签页中,您可以选择容器的每项属性,并指定合适的数据类型。例如,如果您的结构体包含长整型,选择匹配长整型的属性,并选择Signed 32-bit Integer做为数据类型。

3. 为这个新类型创建一个变量。

为这个新的数据类型创建一个本地或者全局变量,并选择Insert Local»Types»<您的新的数据类型>

4. 使用 C/C++ DLL 适配器并插入一个步骤,该步骤代码是函数调用。

选择 C/C++ DLL 适配器并在您的序列中插入一个步骤。您可以右键点击步骤并选择特定的模块。编辑 C/C++ DLL 调用对话框打开。

选择您的DLL以及您的函数。您可能会得到没有参数信息的警告。如果出现该警告,您只需点击New按钮并添加原型参数。

对于结构体参数,选择您在步骤 (3) 中创建的本地或者全局变量做为数值表达式,项目中的 C 结构体,并将您在 (1) 中创建的新的数据类型做为类型。

一旦您完成了上述四个步骤,您就成功配置了TestStand使其调用您DLL中的函数,并传递 C 结构体为参数。

欲了解更多关于创建和使用自定制数据类型的信息,请参考TestStand参考手册第12章内容。这章内容包括"Creating and Modifying Custom Data Types"和"Using Data Types"章节。

相关链接:
KnowledgeBase 2L7AIT7C: How Do I Create a Container in TestStand?

附件:





报告日期: 05/31/2006
最近更新: 11/25/2008
文档编号: 3KPBEO73