Auto Populating the Function Name Ring Control for DLLs in TestStand

Updated Jul 23, 2018

Reported In

Software

  • LabWindows/CVI
  • TestStand

Programming Language

  • C
  • C++

Issue Details

In TestStand I have a step that is calling a DLL that I created. I right-click on the step and select Specify Module... to specify which DLL I am working with. After specifying my DLL, I expected to see the Function Name ring control automatically populate with my function names. However this behavior didn't seem to occur. Sometimes I receive the image below. How can I get TestStand to auto-populate the Function Name ring control with my DLL's function names?

Solution

The Function Name ring control selects the function in the code module that the step calls. In order for the Function Name ring control to be automatically populated, a DLL must have an associated type library. A type library provides more detailed information about the programming interface used to access the DLL (i.e. function names and arguments). If a DLL file contains a type library or if there is a type library with the same base name as the DLL file, the DLL Adapter (C/C++ or LabWindows/CVI) will query the type library and then auto-populate the ring control with all of the function names. Otherwise, the DLL Adapter reads the DLL file and finds the names of all functions that the DLL exports. If a DLL type library contains links to a help file for a function, you can click the ? button next to the function name to access the help.

Creating a type library for a DLL isn't necessary for a function to be recognized by TestStand. If you don't have a type library, it is always possible to manually add the parameters for a given function by enabling the Edit Prototype check-box and then inserting parameters to match a known function definition. Another option is to enable the Use Prototype from Module Tab option which specifies to ignore the code template prototype and to use the prototype specified by the Module tab. This option is found under the Source Code tab.

Remember that in order to call a DLL from any programming environment, the functions in the DLL must be exported.

WAS THIS ARTICLE HELPFUL?

Not Helpful