OWLNext
7.0
Borland's Object Windows Library for the modern age
Loading...
Searching...
No Matches
msc.h
Go to the documentation of this file.
1
//----------------------------------------------------------------------------
2
// ObjectWindows
3
// Copyright (c) 1995, 1996 by Borland International, All Rights Reserved
4
//
5
// Compiler-specific defines for Microsoft Visual C/C++. Included only by
6
// defs.h
7
//
8
//----------------------------------------------------------------------------
9
#if !defined(OWL_PRIVATE_MSC_H)
10
#define OWL_PRIVATE_MSC_H
11
12
#pragma once
13
14
//
15
// Specific name of compiler, BI_COMP_xxxx
16
//
17
#define BI_COMP_MSC
18
19
#if !defined(__FLAT__)
20
# define __FLAT__
21
#endif
22
23
//
24
// Define library-wide function calling conventions. Must rebuild everything
25
// if changed, and must use appropriate modifier on derived classes.
26
//
27
28
#if !defined(_CCONV)
29
# define _CCONV __cdecl
30
#endif
31
32
//
33
// Only enable multi-thread classes when the OS supports them, and/or when the
34
// runtime library support them
35
//
36
#define BI_MULTI_THREAD
37
38
// if RTLDLL we must been multitreaded
39
#if defined(_MT) || defined(BI_APP_DLL)
40
# define BI_MULTI_THREAD_RTL
41
#endif
42
43
//
44
// Compiler-specific macros
45
//
46
47
#define _RTLENTRY
48
#define _USERENTRY
49
#define _EXPCLASS _CRTIMP
50
#define _EXPDATA _CRTIMP
51
#define _EXPFUNC _CRTIMP
52
53
#ifdef _MBCS
54
# if !defined(BI_DBCS_SUPPORT)
55
# define BI_DBCS_SUPPORT
56
# endif
57
#endif
//_MBCS
58
59
#if defined(BI_DBCS_SUPPORT)
60
# if !defined(_MBCS)
61
# define _MBCS
62
# endif
63
#endif
64
65
#if defined(OWL5_COMPAT) && !defined(UNICODE) && defined(_M_IX86)
66
#define OWL_SUPPORT_BWCC
67
#define OWL_SUPPORT_CTL3D
68
#endif
69
70
71
//
72
// C++ language features (see "defs.h" for preprocessor symbol descriptions)
73
//
74
// Language feature: Description SERVICES header
75
// ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
76
#define BI_GLOBALNM_BUG
// Global namespace bug in function member int mfunc(int name = ::someName);
77
#define BI_NOTEMPLATE_H
// No include <owl/template.h>
78
79
#if !defined(_CPPRTTI)
80
# error You have to enable RTTI support.
81
#endif
82
#define _RTTI
// without __rtti keyword
83
84
#if !defined(_CPPUNWIND)
85
# error You have to enable exception support.
86
#endif
87
88
#define BI_NO_LVAL_CASTS
// Can cast lvalues
89
#define BI_VIRTUAL_BUG
//problem when derived class add virtual table
90
#define BI_TYPECASTOPERATOR_BUG
// problem with type cast operator
91
#define BI_HAS_PRAGMA_ONCE
92
93
//
94
// C++ library features
95
//
96
97
#define BI_STDIO_CTRFILE
98
99
//
100
// Misc
101
//
102
103
#define OWL_BREAK {__debugbreak();}
104
#define BI_OWL_PACKING 8
105
106
#if !defined(_BUILDOWLDLL)
107
# include <
owl/private/owllink.h
>
108
#endif
109
110
#define OWL_OUTPUT_DEBUG_STRING(lpsz) ::OutputDebugString(lpsz)
111
112
//
113
// Disable some MSC warnings, & move some to level 4 since they really are OK
114
// TODO: Should not disable warnings in public headers; ideally rewrite the affected code.
115
// If that's not feasable, then disable warnings permanently only in source files, and
116
// use warning(push/pop) in headers to temporarily turn warnings off for the relevant code.
117
//
118
119
#pragma warning(disable:4068)
// unknown pragma, compiler should ignore
120
#pragma warning(disable:4250)
// inherits <base> via dominance
121
#pragma warning(disable:4251)
// class 'type' needs to have dll-interface to be used by clients of class 'type2'
122
#pragma warning(disable:4293)
// disable warning new in default argument will not free memory
123
#pragma warning(disable:4800)
// disable warning forsing value to bool
124
//#pragma warning(disable:4003) // not enough actual parameters for macro
125
#pragma warning(disable:4275)
// non dll-interface class used as base for dll-interface class
126
//#pragma warning(disable:4243) // type cast conversion from '' to '' exists, but is inaccessible
127
#pragma warning(disable:4355)
// 'this' used in base member initializer list
128
#pragma warning(disable:4273)
// 'identifier' : inconsistent DLL linkage. dllexport assumed
129
#pragma warning(disable:4786)
// 'identifier' : identifier was truncated to 'number' characters in the debug information
130
131
/*
132
#pragma warning(disable:4514) // unreferenced inline, compiler internal noise
133
#pragma warning(disable:4201) // complains about valid anonymouse unions!
134
#pragma warning(disable:4238) // nonstandard extension used : class rvalue used as lvalue
135
#pragma warning(disable:4290) // no warning about ignoring throw specification
136
#pragma warning(disable:4511) // 'class' : copy constructor could not be generated
137
#pragma warning(disable:4512) // 'class' : assignment operator could not be generated
138
#pragma warning(disable:4516) // 'class::symbol' : access-declarations are deprecated; member using-declarations provide a better alternative
139
*/
140
141
142
//
143
// Turn off reference tracking for certain often used symbols
144
//
145
146
#pragma component(browser, off, references, "CHECK")
147
#pragma component(browser, off, references, "CHECKX")
148
#pragma component(browser, off, references, "TRACE")
149
#pragma component(browser, off, references, "TRACEX")
150
#pragma component(browser, off, references, "PRECONDITION")
151
#pragma component(browser, off, references, "PRECONDITIONX")
152
#pragma component(browser, off, references, "uint8")
153
#pragma component(browser, off, references, "int8")
154
#pragma component(browser, off, references, "uint16")
155
#pragma component(browser, off, references, "int16")
156
#pragma component(browser, off, references, "unit32")
157
#pragma component(browser, off, references, "int32")
158
#pragma component(browser, off, references, "uint")
159
#pragma component(browser, off, references, "LPSTR")
160
#pragma component(browser, off, references, "LPTSTR")
161
#pragma component(browser, off, references, "LPCSTR")
162
#pragma component(browser, off, references, "LPCTSTR")
163
#pragma component(browser, off, references, "NULL")
164
#pragma component(browser, off, references, "WINAPI")
165
#pragma component(browser, off, references, "_OWLCLASS")
166
#pragma component(browser, off, references, "_OWLFUNC")
167
#pragma component(browser, off, references, "_OWLDATA")
168
169
170
#endif
// OWL_PRIVATE_MSC_H
owllink.h
include
owl
private
msc.h
Generated by
1.10.0