[원문] http://digital.ni.com/public.nsf/allkb/70995EC2CA1B523386256DD4004F3DE6
Calling a LabVIEW DLL from a CVI or other C/C++ project
Primary Software: LabVIEW Development Systems
Primary Software Version: N/A
Primary Software Fixed Version: N/A
Secondary Software: N/A
Problem: I compiled a DLL in LabVIEW but I can't
figure out how to call it from CVI, Visual C/C++, or other Windows
development environment.
Solution: When you build a DLL in LabVIEW, three files
are created: the DLL file, a LIB file, and an H file (the C/C++ header
file). The DLL file contains the functionality that you programmed in
LabVIEW, the LIB file contains a stub for loading and calling the DLL
function, and the H file contains a function prototype for calling the
function that is contained in the LIB file (which ultimately calls the
DLL). To use the code in another environment, you can call the DLL
directly using LoadLibrary() and GetProcAddress() functions in the
Windows SDK or you can link your project with the LIB file and header
file so that you simply call the function by name as though it were
already in your project. The latter is the easiest and preferred method
for most beginning programmers. To do this:
- Add the LIB file to your C/C++ project.
- Include
the H file at the top of the source file where you want to call your
DLL function by using the #include preprocessor directive.
- Point
your compiler to find other LabVIEW .h files like extcode.h,
fundtypes.h, and platdefines.h in the C:\Program Files\National
Instruments\LabVIEW\cintools subdirectory. These header files define
certain types used by LabVIEW and sometimes passed in and out of
LabVIEW code depending on your DLL. If LabVIEW is not installed on the
development machine, you will need to copy these .h files from the
cintools directory to a location where the development computer can
find them.
- Call the function by its name and parameters as specified in the header file.
Note
that the LabVIEW runtime engine includes supporting functions that are
required for any code built with LabVIEW and used on another computer.
The appropriate version of the runtime engine is required to execute a
DLL.
Related Links: KnowledgeBase 28185EQO: LabVIEW Run-Time Engine Requirments for DLL Execution
Attachments:
Report Date: 2003-11-04
Last Updated: 2005-11-05
Document ID: 3337DOV4