labview 混合编程

Calling a DLL from Microsoft Visual C++ that Was Generated by LabVIEW 6i

http://zone.ni.com/devzone/cda/tut/p/id/3927

21 ratings | 3.95 out of 5
Print
LabVIEW 6i can create DLLs that can be used in other programming environments. This document demonstrates how to use Microsoft Visual C++ to call a simple function in a DLL that was generated by LabVIEW 6i. The first two steps in this process are to create the VI and then create a DLL from LabVIEW 6i. The document linked at the bottom of the page shows how this is done.

1. Open up a new Visual C++ project by selecting File>>Menu and then selecting the Projects tab. Select the Win32 Console Application and enter a project name and location for it to be stored.


[+] Enlarge Image

2. Open up a new Visual C++ Source File by selecting File>>Menu and then selecting the Files tab. Select the C++ Source File and enter a file name and location for it to be stored.


[+] Enlarge Image

3. Type the source code as shown below. Make sure to include the header file that was created by LabVIEW (Convert_Temp.h). Remember that the function prototype for the DLL that you created was “float64 F_to_C(float64 DegF, float64 *DegC). This code simply calls the temperature conversion VI (F_to_C) and then prints the input (F), output (C), and return (ret) value. Notice that the address of the output (C) must be passed to the function, since it was defined as a Pointer to a Value.



[+] Enlarge Image

4. Now add the header file that was created by LabVIEW (Convert_Temp.h) to your project. Select Project>>Add To Project>>Files as shown below.


[+] Enlarge Image

5. Select the header file and click OK.




6. Repeat Steps 4 & 5 for the library file (Convert_Temp.lib).




7. Make sure the compiler knows where to locate the header file you added in steps 4 and 5. To let the compiler know where to look for this file, select Tools>>Options from the menu bar.


[+] Enlarge Image


8. Select the Directories tab and select Include files in the Show directories for field. If the path where the header file is located is not listed, add it by clicking the dotted box above the Directories box. The header file that was created by LabVIEW references another header file called extcode.h. This header file contains LabVIEW defined datatypes that you need to call the DLL. It is generally located in the LabVIEW file under cintools, as shown below.





9. Your DLL must be in the same folder as the project, so in this case you must move Convert_Temp.dll from C:/TEMP/app/ to C:/TEMP/FtoC/.


[+] Enlarge Image

10. You can now compile and build the executable.


[+] Enlarge Image


11. Troubleshooting

If you get the following error when you compile, add the path to the header file. See steps 7 & 8.

c:/temp/ftoc/deg.c(2) : fatal error C1083: Cannot open include file: 'Convert_Temp.h': No such file or directory
Error executing cl.exe.


If you get the following error when you try to run the executable, the DLL file is probably not in the same directory as your project. See step 9.



12. Run the executable.



[+] Enlarge Image


13. Notice that the 75 degrees Fahrenheit was converted to 23.9 degrees Celsius. Also, notice that the return value is equal to 23.9. This is because you set the return value equal to DegC when the DLL was built in LabVIEW.


[+] Enlarge Image



-The link shows how the DLL called in this Microsoft Visual C++ example was created in LabVIEW 6i.

http://zone.ni.com/devzone/cda/tut/p/id/3927



你可能感兴趣的:(labview 混合编程)