在TestStand的C/C++ DLL中调用带有C结构体做为参数的函数
主要软件:
主要软件版本: 3.0
主要软件修正版本: N/A
次要软件: N/A
问题: 我的DLL中的一个函数带有一个结构体参数。我在TestStand的目录<TestStand>\Examples\StructPassing\LabVIEW下找到了自带的例程。我如何设置TestStand使其能够使用该函数做为代码模块?
解答: 很少的步骤就可是使您从DLL中调用函数,并传递您正在使用的结构体引用。您可能要:
- 创建一个数据类型以匹配该结构体;
- 设置这个新步骤的属性以允许其做为C结构体进行传递;
- 为这个新类型创建一个变量;
- 使用 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
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.