Chapter 3 Windows 95/NT Compiler/Linker Issues
LabWindows/CVI Programmer Reference Manual 3-4
©
National Instruments Corporation
Note cvirte.dll contains the User Interface, Utility, Formatting and I/O, RS-232,
ANSI C, TCP, and DDE Libraries.
Generating an Import Library
If you do not have a DLL import library or if the one you have contains references the DLL
does not export, you can generate an import library in LabWindows/CVI. You must have an
include file that contains the declarations of all the functions and global variables you want to
access from the DLL. The calling conventions of the function declarations in the include file
must match the calling convention of the functions in the DLL. For example, if the DLL
exports functions using the
__stdcall calling convention, the function declarations in the
include file must contain the
__stdcall keyword. Load the include file into a Source
window, and select the Generate DLL Import Library command in the Options menu.
Default Unloading/Reloading Policy
Some fundamental differences exist in the way Windows 95/NT and Windows 3.1 handle a
DLL that multiple processes use.
Windows 95/NT creates a separate data space for each process that uses the DLL.
Windows 3.1 creates only one data space for all processes that use the DLL.
Windows 95/NT notifies a DLL each time a process loads or unloads it. Windows 3.1 does
not notify a DLL each time a process loads or unloads it. Windows 3.1 notifies the DLL only
when the first process loads it and the last process unloads it.
LabWindows/CVI for Windows 95/NT unloads DLLs, by default, after each execution of a
user program in the development environment. This behavior more accurately simulates
what happens when you execute a standalone executable, and it is more suitable for
Windows 95/NT DLLs that rely on load/unload notification on each execution of a program.
You can change the default behavior by turning off the Unload DLLs After Each Run option
in the Run Options dialog box of the Project window. National Instruments recommends,
however, that you leave the default behavior in effect.
Compatibility with External Compilers
LabWindows/CVI for Windows 95/NT can be compatible at the object code level with
any of the four compatible external compilers (Microsoft Visual C/C++, Borland C/C++,
Watcom C/C++, and Symantec C/C++). Because these compilers are not compatible with
each other at the object code level, LabWindows/CVI can be compatible with only one
external compiler at a time. This manual refers to the compiler with which your copy of
LabWindows/CVI is currently compatible as the current compatible compiler.
00ProRef.book : 06chap03.fm Page 4 Monday, March 9, 1998 3:23 PM