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 // Win Mobile still does thread exits differently than PC Windows.
34 #if defined (_WIN32_WCE)
35 # define ACE_ENDTHREADEX(STATUS) ExitThread ((DWORD) STATUS)
37 # define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS)
38 #endif /* _WIN32_WCE */
40 //FUZZ: disable check_for_msc_ver
41 #if (_MSC_VER >= 1920)
42 # include "ace/config-win32-msvc-142.h"
43 #elif (_MSC_VER >= 1910)
44 # include "ace/config-win32-msvc-141.h"
45 #elif (_MSC_VER >= 1900)
46 # include "ace/config-win32-msvc-14.h"
47 #elif (_MSC_VER >= 1800)
48 # include "ace/config-win32-msvc-12.h"
49 #elif (_MSC_VER >= 1700)
50 # include "ace/config-win32-msvc-11.h"
51 #elif (_MSC_VER >= 1600)
52 # include "ace/config-win32-msvc-10.h"
53 #elif (_MSC_VER >= 1500)
54 # include "ace/config-win32-msvc-9.h"
55 #elif (_MSC_VER >= 1400)
56 # include "ace/config-win32-msvc-8.h"
57 #elif (_MSC_VER >= 1310)
58 # include "ace/config-win32-msvc-7.h"
60 # error This version of Microsoft Visual C++ is not supported.
62 //FUZZ: enable check_for_msc_ver
64 // MFC changes the behavior of operator new at all MSVC versions from 6 up
65 // by throwing a static CMemoryException* instead of std::bad_alloc
66 // (see ace/OS_Memory.h). This MFC exception object needs to be cleaned up
67 // by calling its Delete() method.
68 #if defined (ACE_HAS_MFC) && (ACE_HAS_MFC == 1)
69 # if !defined (ACE_NEW_THROWS_EXCEPTIONS)
70 # define ACE_NEW_THROWS_EXCEPTIONS
72 # if defined (ACE_bad_alloc)
75 # define ACE_bad_alloc CMemoryException *e
76 # if defined (ACE_del_bad_alloc)
77 # undef ACE_del_bad_alloc
79 # define ACE_del_bad_alloc e->Delete();
80 #endif /* ACE_HAS_MFC && ACE_HAS_MFC==1 */
82 #if defined(ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
83 // must have _MT defined to include multithreading
84 // features from win32 headers
85 # if !defined(_MT) && !defined (ACE_HAS_WINCE)
86 // *** DO NOT *** defeat this error message by defining _MT yourself.
87 // On MSVC, this is changed by selecting the Multithreaded
88 // DLL or Debug Multithreaded DLL in the Project Settings
89 // under C++ Code Generation.
90 # error You must link against multi-threaded libraries when using ACE (check your project settings)
91 # endif /* !_MT && !ACE_HAS_WINCE */
92 #endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */
95 // Although ACE does have alloca() on this compiler/platform combination, it is
96 // disabled by default since it can be dangerous. Uncomment the following line
97 // if you ACE to use it.
98 //#define ACE_HAS_ALLOCA 1
100 #define ACE_LACKS_DIRENT_H
101 #define ACE_LACKS_DLFCN_H
102 #define ACE_LACKS_INTTYPES_H
103 #define ACE_LACKS_NETDB_H
104 #define ACE_LACKS_NET_IF_H
105 #define ACE_LACKS_NETINET_IN_H
106 #if !defined (ACE_WIN32_VC14)
107 # define ACE_LACKS_STDINT_H
109 #define ACE_LACKS_STROPTS_H
110 #define ACE_LACKS_SYS_IOCTL_H
111 #define ACE_LACKS_SYS_IPC_H
112 #define ACE_LACKS_SYS_MMAN_H
113 #define ACE_LACKS_SYS_RESOURCE_H
114 #define ACE_LACKS_SYS_SELECT_H
115 #define ACE_LACKS_SYS_SEM_H
116 #define ACE_LACKS_SYS_SOCKET_H
117 #define ACE_LACKS_SYS_TIME_H
118 #define ACE_LACKS_SYS_UIO_H
119 #define ACE_LACKS_SYS_WAIT_H
120 #define ACE_LACKS_UCONTEXT_H
122 #define ACE_LACKS_SEMAPHORE_H
123 #define ACE_LACKS_STRINGS_H
124 #define ACE_LACKS_PWD_H
125 #define ACE_LACKS_POLL_H
126 #define ACE_LACKS_SYS_SHM_H
127 #define ACE_LACKS_SYS_MSG_H
128 #define ACE_LACKS_NETINET_TCP_H
129 #define ACE_LACKS_TERMIOS_H
130 #define ACE_LACKS_REGEX_H
132 #define ACE_LACKS_LOCALTIME_R
133 #define ACE_LACKS_GMTIME_R
134 #define ACE_LACKS_ASCTIME_R
136 #define ACE_INT64_FORMAT_SPECIFIER_ASCII "%I64d"
137 #define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%I64u"
139 #define ACE_STRTOLL_EQUIVALENT ::_strtoi64
140 #define ACE_WCSTOLL_EQUIVALENT ::_wcstoi64
141 #define ACE_STRTOULL_EQUIVALENT ::_strtoui64
142 #define ACE_WCSTOULL_EQUIVALENT ::_wcstoui64
143 #define ACE_WTOF_EQUIVALENT ::_wtof
145 #define ACE_LACKS_ISBLANK
146 #define ACE_LACKS_ISWBLANK
147 #define ACE_LACKS_CORRECT_ISWPRINT_TAB
148 #define ACE_ISCTYPE_EQUIVALENT ::_isctype
150 // Turn off warnings for /W4
151 // To resume any of these warning: #pragma warning(default: 4xxx)
152 // which should be placed after these defines
154 #if !defined (ALL_WARNINGS) && defined(_MSC_VER) && !defined(__MINGW32__)
155 # pragma warning(disable: 4127) /* constant expression for TRACE/ASSERT */
156 # pragma warning(disable: 4134) /* message map member fxn casts */
157 # pragma warning(disable: 4511) /* private copy constructors are good to have */
158 # pragma warning(disable: 4512) /* private operator= are good to have */
159 # pragma warning(disable: 4514) /* unreferenced inlines are common */
160 # pragma warning(disable: 4710) /* private constructors are disallowed */
161 # pragma warning(disable: 4705) /* statement has no effect in optimized code */
162 # pragma warning(disable: 4791) /* loss of debugging info in retail version */
163 # pragma warning(disable: 4275) /* deriving exported class from non-exported */
164 # pragma warning(disable: 4251) /* using non-exported as public in exported */
165 # pragma warning(disable: 4786) /* identifier was truncated to '255' characters in the browser information */
166 # pragma warning(disable: 4097) /* typedef-name used as synonym for class-name */
167 # pragma warning(disable: 4800) /* converting int to boolean */
168 # if defined (__INTEL_COMPILER)
169 # pragma warning(disable: 1744) /* field of class type without a DLL interface used in a class with a DLL interface */
170 # pragma warning(disable: 1738)
172 #endif /* !ALL_WARNINGS && _MSV_VER && !__MINGW32__ */
174 // STRICT type checking in WINDOWS.H enhances type safety for Windows
175 // programs by using distinct types to represent all the different
176 // HANDLES in Windows. So for example, STRICT prevents you from
177 // mistakenly passing an HPEN to a routine expecting an HBITMAP.
178 // Note that we only use this if we
179 # if defined (ACE_HAS_STRICT) && (ACE_HAS_STRICT != 0)
180 # if !defined (STRICT) /* may already be defined */
182 # endif /* !STRICT */
183 # endif /* ACE_HAS_STRICT */
185 #include /**/ "ace/post.h"
186 #endif /* ACE_CONFIG_WIN32_MSVC_H */