Compiler Flags for Windows 32-bit Visual C++ 2008 SP1

From DocR23

Jump to: navigation, search
Showproduct.png



Contents

ARCH

ACIS and InterOp ARCH names for the Windows platform, Microsoft Visual Studio C++ 2008 SP1 Compiler (32-bit), are as follows:

NT_VC9_DLL 32-bit release ACIS/InterOp libraries
NT_VC9_DLLD 32-bit debug ACIS/InterOp libraries

Compiler Type

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86

Setup

Description NT_VC9_DLL NT_VC9_DLLD
Compiler Flags
/EHa Enable asynchronous C++ exception handling. X X
/MD Link with multi-threaded release run-time. X
/MDd Link with multi-threaded debug run-time. X
Preprocessor Directives
_DEBUG Debug build X
_WINDOWS MS specific X X
ANSI Enable ANSI prototyping. X X
NDEBUG Release build X
NT Define the base architecture. X X
NT_VC9_DLL Define this to force link ACIS/InterOp release libraries. X
NT_VC9_DLLD Define this to force link ACIS/InterOp debug libraries. X
SPA_NO_AUTO_LINK Define this to disable force linking of ACIS/InterOp libraries. X X
_WIN32_WINNT=0X502 Define major operating system release. X X
Linker Options

link /LIB /NODEFAULTLIB /DEF: /MACHINE:IX86
link /DLL /FORCE:MULTIPLE /MACHINE:IX86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib

X X
Special Notes
  • Each sample has _vc9.* appended to its name when installed, for example, <sample_name>_vc9.vcproj.
  • Manifest files are embedded only in the DLL files; they are not embedded in the executables.
  • The portion of your application that links against ACIS/InterOp must be built with the compilation flag /EHa. This is new with VS2005 and is also the case in VS2008. VS2005/2008 has a more strict implementation of try/catch. Formerly, if you built /EHs with VC6 or VC7(.1), try/catch blocks would catch asynchronous exceptions and would invoke the ACIS-structured exception handler (assuming the asynchronous exception happened in an ACIS API block or EXCEPTION block). With VS2005/2008, however, asynchronous exceptions are not caught in an /EHs built try/catch block.

See Also

Personal tools