1 //=============================================================================
3 * @file config-win32-msvc.h
5 * @brief Microsoft Visual C++ configuration file.
7 * This file is the ACE configuration file for Microsoft Visual C++
9 * @author Darrell Brunsch <brunsch@cs.wustl.edu>
11 //=============================================================================
13 #ifndef ACE_CONFIG_WIN32_MSVC_H
14 #define ACE_CONFIG_WIN32_MSVC_H
15 #include /**/ "ace/pre.h"
17 #ifndef ACE_CONFIG_WIN32_H
18 #error Use config-win32.h in config.h instead of this header
19 #endif /* ACE_CONFIG_WIN32_H */
21 #define ACE_CC_NAME ACE_TEXT ("Visual C++")
22 #define ACE_CC_PREPROCESSOR "CL.EXE"
23 #define ACE_CC_PREPROCESSOR_ARGS "-nologo -E"
25 #define ACE_CC_MAJOR_VERSION (_MSC_VER / 100 - 6)
26 #define ACE_CC_MINOR_VERSION (_MSC_VER % 100)
27 #define ACE_CC_BETA_VERSION (0)
29 #if !defined(_NATIVE_WCHAR_T_DEFINED)
30 #define ACE_LACKS_NATIVE_WCHAR_T
33 # define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS)
35 //FUZZ: disable check_for_msc_ver
36 #if (_MSC_VER >= 1930)
37 # include "ace/config-win32-msvc-143.h"
38 #elif (_MSC_VER >= 1920)
39 # include "ace/config-win32-msvc-142.h"
40 #elif (_MSC_VER >= 1910)
41 # include "ace/config-win32-msvc-141.h"
43 # error This version of Microsoft Visual C++ is not supported.
45 //FUZZ: enable check_for_msc_ver
47 #if defined(ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
48 // must have _MT defined to include multithreading
49 // features from win32 headers
51 // *** DO NOT *** defeat this error message by defining _MT yourself.
52 // On MSVC, this is changed by selecting the Multithreaded
53 // DLL or Debug Multithreaded DLL in the Project Settings
54 // under C++ Code Generation.
55 # error You must link against multi-threaded libraries when using ACE (check your project settings)
57 #endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */
60 // Although ACE does have alloca() on this compiler/platform combination, it is
61 // disabled by default since it can be dangerous. Uncomment the following line
62 // if you ACE to use it.
63 //#define ACE_HAS_ALLOCA 1
65 #define ACE_LACKS_DIRENT_H
66 #define ACE_LACKS_DLFCN_H
67 #define ACE_LACKS_INTTYPES_H
68 #define ACE_LACKS_NETDB_H
69 #define ACE_LACKS_NET_IF_H
70 #define ACE_LACKS_NETINET_IN_H
71 #define ACE_LACKS_STROPTS_H
72 #define ACE_LACKS_SYS_IOCTL_H
73 #define ACE_LACKS_SYS_IPC_H
74 #define ACE_LACKS_SYS_MMAN_H
75 #define ACE_LACKS_SYS_RESOURCE_H
76 #define ACE_LACKS_SYS_SELECT_H
77 #define ACE_LACKS_SYS_SEM_H
78 #define ACE_LACKS_SYS_SOCKET_H
79 #define ACE_LACKS_SYS_TIME_H
80 #define ACE_LACKS_SYS_UIO_H
81 #define ACE_LACKS_SYS_WAIT_H
82 #define ACE_LACKS_UCONTEXT_H
84 #define ACE_LACKS_SEMAPHORE_H
85 #define ACE_LACKS_STRINGS_H
86 #define ACE_LACKS_PWD_H
87 #define ACE_LACKS_POLL_H
88 #define ACE_LACKS_SYS_SHM_H
89 #define ACE_LACKS_SYS_MSG_H
90 #define ACE_LACKS_NETINET_TCP_H
91 #define ACE_LACKS_TERMIOS_H
92 #define ACE_LACKS_REGEX_H
94 #define ACE_LACKS_LOCALTIME_R
95 #define ACE_LACKS_GMTIME_R
96 #define ACE_LACKS_ASCTIME_R
98 #define ACE_INT64_FORMAT_SPECIFIER_ASCII "%I64d"
99 #define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%I64u"
101 #define ACE_STRTOLL_EQUIVALENT ::_strtoi64
102 #define ACE_WCSTOLL_EQUIVALENT ::_wcstoi64
103 #define ACE_STRTOULL_EQUIVALENT ::_strtoui64
104 #define ACE_WCSTOULL_EQUIVALENT ::_wcstoui64
105 #define ACE_WTOF_EQUIVALENT ::_wtof
107 #define ACE_LACKS_ISBLANK
108 #define ACE_LACKS_ISWBLANK
109 #define ACE_LACKS_CORRECT_ISWPRINT_TAB
110 #define ACE_ISCTYPE_EQUIVALENT ::_isctype
112 #define ACE_HAS_WIN32_STRUCTURED_EXCEPTIONS
114 // Turn off warnings for /W4
115 // To resume any of these warning: #pragma warning(default: 4xxx)
116 // which should be placed after these defines
118 #if !defined (ALL_WARNINGS) && defined(_MSC_VER) && !defined(__MINGW32__)
119 # pragma warning(disable: 4127) /* constant expression for TRACE/ASSERT */
120 # pragma warning(disable: 4134) /* message map member fxn casts */
121 # pragma warning(disable: 4511) /* private copy constructors are good to have */
122 # pragma warning(disable: 4512) /* private operator= are good to have */
123 # pragma warning(disable: 4514) /* unreferenced inlines are common */
124 # pragma warning(disable: 4710) /* private constructors are disallowed */
125 # pragma warning(disable: 4705) /* statement has no effect in optimized code */
126 # pragma warning(disable: 4791) /* loss of debugging info in retail version */
127 # pragma warning(disable: 4275) /* deriving exported class from non-exported */
128 # pragma warning(disable: 4251) /* using non-exported as public in exported */
129 # pragma warning(disable: 4786) /* identifier was truncated to '255' characters in the browser information */
130 # pragma warning(disable: 4097) /* typedef-name used as synonym for class-name */
131 # pragma warning(disable: 4800) /* converting int to boolean */
132 # if defined (__INTEL_COMPILER)
133 # pragma warning(disable: 1744) /* field of class type without a DLL interface used in a class with a DLL interface */
134 # pragma warning(disable: 1738)
136 #endif /* !ALL_WARNINGS && _MSV_VER && !__MINGW32__ */
138 // STRICT type checking in WINDOWS.H enhances type safety for Windows
139 // programs by using distinct types to represent all the different
140 // HANDLES in Windows. So for example, STRICT prevents you from
141 // mistakenly passing an HPEN to a routine expecting an HBITMAP.
142 // Note that we only use this if we
143 # if defined (ACE_HAS_STRICT) && (ACE_HAS_STRICT != 0)
144 # if !defined (STRICT) /* may already be defined */
146 # endif /* !STRICT */
147 # endif /* ACE_HAS_STRICT */
149 #include /**/ "ace/post.h"
150 #endif /* ACE_CONFIG_WIN32_MSVC_H */