National Instruments 320685D-01 ユーザーズマニュアル

ページ / 211
Chapter 1
LabWindows/CVI Compiler
©
 National Instruments Corporation
1-3
LabWindows/CVI Programmer Reference Manual
however, set options to cause the calling convention to default to __
stdcall
. The behavior 
is the same in LabWindows/CVI. You can set the default calling convention to either __
cdecl
 
or 
__stdcall
 using the Compiler Options command in the Options menu of the Project 
window. When you create a new project, the default calling convention is 
__cdecl
.
In Watcom C/C++, the default calling convention is not __
cdecl
 or 
__stdcall
. You must 
use the 
-4s
 (80486 Stack-Based Calling) option when you compile a module in Watcom for 
use in LabWindows/CVI. Refer to the 
 section in 
Chapter 3, 
. The 
-4s
 option causes the stack-based 
calling convention to be the default. In LabWindows/CVI under Watcom compatibility mode, 
the default calling convention is always the stack-based convention. It cannot be changed. The 
LabWindows/CVI compiler accepts the 
__cdecl
 and 
__stdcall
 conventions under 
Watcom, except that floating point and structure return values do not work in the 
__cdecl
 
calling convention. National Instruments recommends that you avoid using 
__cdecl
 with 
Watcom.
In the 
__cdecl
 calling convention and the Watcom stack-based calling convention, the 
calling function is responsible for cleaning up the stack. Functions can have a variable number 
of arguments.
In the 
__stdcall
 calling convention, the called function is responsible for cleaning up the 
stack. Functions with a variable number of arguments do not work in 
__stdcall
. If you use 
the 
__stdcall
 qualifier on a function with a variable number of arguments, 
LabWindows/CVI does not honor the qualifier. All compilers pass parameters and return 
values in the same way for 
__stdcall
 functions, except for floating point and structure 
return values.
National Instruments recommends the 
__stdcall
 calling convention for all functions 
exported from a DLL, except functions with a variable number of arguments. Visual Basic 
and other non-C Windows programs expect DLL functions to be 
__stdcall
.
Import and Export Qualifiers
You can use the following qualifiers in variable and function declarations:
__declspec(dllimport)
__declspec(dllexport)
__import
__export
_import
_export
00ProRef.book : 06chap01.fm  Page 3  Monday, March 9, 1998  3:23 PM