home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / cb / setup / cbuilder / data.z / _DEFS.H next >
C/C++ Source or Header  |  1997-02-28  |  5KB  |  175 lines

  1. /*  _defs.h
  2.  
  3.     Common definitions for pointer size and calling conventions.
  4.  
  5.     Calling conventions:
  6.     _RTLENTRY       Specifies the calling convention used by the RTL
  7.  
  8.     _USERENTRY      Specifies the calling convention the RTL expects user
  9.                     compiled functions to use (for callbacks)
  10.  
  11.     Export (and size for DOS) information:
  12.     _EXPCLASS       Exports class if building DLL version of library
  13.                     For DOS16 also provides size information
  14.  
  15.     _EXPDATA        Exports data if building DLL version of library
  16.  
  17.     _EXPFUNC        Exports function if building DLL version of library
  18.                     For DOS16 also provides size information
  19.  
  20.     _FAR            Promotes data pointers to far in DLLs (DOS16 only)
  21.  
  22.     Obsolete versions:
  23.     _Cdecl          Use _RTLENTRY
  24.     _CLASSTYPE      Use _EXPCLASS
  25.     _FARFUNC        Use _EXPFUNC
  26.     _FARCALL        Use _EXPFUNC and declare function explicity __far
  27. */
  28.  
  29. /*
  30.  *      C/C++ Run Time Library - Version 8.0
  31.  *
  32.  *      Copyright (c) 1991, 1997 by Borland International
  33.  *      All Rights Reserved.
  34.  *
  35.  */
  36. /* $Revision:   8.2  $ */
  37.  
  38. #if !defined(___DEFS_H)
  39. #define ___DEFS_H
  40.  
  41. #if defined(__OS2__)
  42. #    define _RTLENTRY  __stdcall
  43. #    define _USERENTRY __stdcall
  44. #elif defined(__WIN32__)
  45. #    define _RTLENTRY  __cdecl
  46. #    define _USERENTRY __cdecl
  47. #else
  48. #    define _RTLENTRY  __cdecl
  49. #    define _USERENTRY __cdecl
  50. #endif
  51.  
  52. #if defined(__PAS__)
  53. #    define _RTLENTRYF  __pascal
  54. #    define _USERENTRYF __pascal
  55. #else
  56. #    define _RTLENTRYF  _RTLENTRY
  57. #    define _USERENTRYF _USERENTRY
  58. #endif
  59.  
  60. #if defined(__FLAT__)
  61. #   define _FAR
  62. #   if defined(_BUILDRTLDLL)
  63. #       define _EXPCLASS  __export
  64. #       define _EXPDATA   __export
  65. #       define _EXPFUNC   __export
  66. #    define _RWSTDBUILDDLL
  67. #   elif defined(_RTLDLL) && !defined(__OS2__)
  68. #       define _EXPCLASS  __import
  69. #       define _EXPDATA   __import
  70. #       define _EXPFUNC   __import
  71. #    define _RWSTDDLL
  72. #   else
  73. #       define _EXPCLASS
  74. #       define _EXPDATA
  75. #       define _EXPFUNC
  76. #   endif
  77. #else
  78. #   if defined(__DLL__)
  79. #       if defined(_BUILDRTLDLL)
  80. #           define _EXPCLASS __export
  81. #       elif defined(_RTLDLL) || defined(_CLASSDLL)
  82. #           define _EXPCLASS __export
  83. #       else
  84. #           define _EXPCLASS __far
  85. #       endif
  86. #       define _FAR __far
  87. #   elif defined(_RTLDLL) || defined(_CLASSDLL)
  88. #       define _EXPCLASS __export
  89. #       define _FAR __far
  90. #   else
  91. #       if   defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
  92. #           if defined(_RTLFARVTABLE)
  93. #               define _EXPCLASS  __huge
  94. #           else
  95. #               define _EXPCLASS  __near
  96. #           endif
  97. #       elif defined(__COMPACT__) || defined(__LARGE__)
  98. #           if defined(_RTLFARVTABLE)
  99. #               define _EXPCLASS  __huge
  100. #           else
  101. #               define _EXPCLASS  __far
  102. #           endif
  103. #       else
  104. #           define _EXPCLASS  __huge
  105. #       endif
  106. #       define _FAR
  107. #   endif
  108. #   if defined(_BUILDRTLDLL)
  109. #       define _EXPFUNC __export
  110. #   else
  111. #       if defined(_RTLDLL) || defined(_CLASSDLL)
  112. #           define _EXPFUNC __far
  113. #       else
  114. #           define _EXPFUNC
  115. #       endif
  116. #   endif
  117. #   define _EXPDATA
  118. #endif
  119.  
  120.  
  121. #if defined(__FLAT__)
  122. #define _EXPFUNC32  _EXPFUNC
  123. #define _EXPFUNC16
  124. #else
  125. #define _EXPFUNC32
  126. #define _EXPFUNC16  _EXPFUNC
  127. #endif
  128.  
  129.  
  130. #define _Cdecl      _RTLENTRY
  131. #define _CType      _RTLENTRYF
  132. #define _CLASSTYPE  _EXPCLASS
  133. #define _FARFUNC    _EXPFUNC
  134. #define _FARCALL    _EXPFUNC __far
  135.  
  136.  
  137. #if !defined(__FLAT__) && defined(__MSC)
  138. #   define __emit db
  139. #   ifdef __SMALL__
  140. #       define _M_I86SM
  141. #   endif
  142. #   ifdef __COMPACT__
  143. #       define _M_I86CM
  144. #   endif
  145. #   ifdef __MEDIUM__
  146. #       define _M_I86MM
  147. #   endif
  148. #   ifdef __LARGE__
  149. #       define _M_I86LM
  150. #   endif
  151. #   ifndef _Windows
  152. #       define _DOS
  153. #   else
  154. #       define _WINDOWS
  155. #   endif
  156. #endif
  157.  
  158. #if defined(__cplusplus)
  159. #   define _PTRDEF(name) typedef name _FAR * P##name;
  160. #   define _REFDEF(name) typedef name _FAR & R##name;
  161. #   define _REFPTRDEF(name) typedef name _FAR * _FAR & RP##name;
  162. #   define _PTRCONSTDEF(name) typedef const name _FAR * PC##name;
  163. #   define _REFCONSTDEF(name) typedef const name _FAR & RC##name;
  164.  
  165. /*********** Obsolete definitions for OWL 1.0 *************/
  166. #   define _CLASSDEF(name) class _EXPCLASS name; \
  167.            _PTRDEF(name) \
  168.            _REFDEF(name) \
  169.            _REFPTRDEF(name) \
  170.            _PTRCONSTDEF(name) \
  171.            _REFCONSTDEF(name)
  172. #endif
  173.  
  174. #endif  /* ___DEFS_H */
  175.