The Conroy & Conroy Subroutine Library (2021.3 edition)

eDefines
What: include file
Layer: 0
Platforms: C, C++, Pascal (All)

This file defines conditional compilation symbols. This is a modified version of a file created by others. The "current original" file can be found at http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=15391. Note that although several different compilers are targeted by this file, not every possible compiler will result in all appropriate conditional symbols being defined.

The conditional symbols fit into the following categories:
Platform: Information about software/hardware platform, including Operating system and compiler.
Features: Information about which compiler and library features are available.
C&C: Options and debugging.
Note: Use of platform symbols should be avoided outside of eDefines, if possible. Instead, use the capabilities symbols.

The following are defined for Pascal programs:


Platform:
Exact compiler versions:
SymbolMeaning
BP7 Borland Pascal 7.0
CBUILDER1 C++Builder 1.0
CBUILDER3 C++Builder 3.0
CBUILDER4 C++Builder 4.0
CBUILDER5 C++Builder 5.0
DELPHI1 Delphi 1.0
DELPHI2 Delphi 2.0
DELPHI3 Delphi 3.0
DELPHI4 Delphi 4.0
DELPHI5 Delphi 5.0
DELPHI6 Delphi 6.0
DELPHI7 Delphi 7.0
DELPHI8 Delphi 8.0
DELPHI9 Delphi 9.0
DELPHI2005 Delphi 2005
DELPHI2006 Delphi 2006
DELPHI2007 Delphi 2007
DELPHI2009 Delphi 2009
DELPHI2010 Delphi 2010
DELPHIXE Delphi XE
DELPHIXE2 Delphi XE2
DELPHIXE3 Delphi XE3
DELPHIXE4 Delphi XE4
DELPHIXE5 Delphi XE5
DELPHIXE6 Delphi XE6
DELPHIXE7 Delphi XE7
DELPHIXE8 Delphi XE8
DELPHI10 Delphi 10
DELPHI10_1 Delphi 10.1
DELPHI10_2 Delphi 10.2
DELPHI10_3 Delphi 10.3
DELPHI10_4 Delphi 10.4
KYLIX1 Kylix 1.0
TP4 Turbo Pascal 4.0
TP5 Turbo Pascal 5.0
TP55 Turbo Pascal 5.5
TP6 Turbo Pascal 6.0
TPW10 Turbo Pascal for Windows 1.0
TPW15 Turbo Pascal for Windows 1.5

Minimum compiler versions:

SymbolMeaning
CBUILDER1UP C++Builder 1.0 and above or Delphi 2 and above (any C++Builder)
CBUILDER3UP C++Builder 3.0 and above or Delphi 3.0 and above
CBUILDER4UP C++Builder 4.0 and above or Delphi 4.0 and above
CBUILDER5UP C++Builder 5.0 and above or Delphi 5.0 and above
DELPHI Any Delphi
DELPHI1UP Delphi 1.0 and above (any Delphi)
DELPHI2UP Delphi 2.0 and above
DELPHI3UP Delphi 3.0 and above
DELPHI4UP Delphi 4.0 and above
DELPHI5UP Delphi 5.0 and above
DELPHI6UP Delphi 6.0 and above
DELPHI7UP Delphi 7.0 and above
DELPHI8UP Delphi 8.0 and above
DELPHI9UP Delphi 9.0 and above
DELPHI2005UP Delphi 2005 and above
DELPHI2006UP Delphi 2006 and above
DELPHI2007UP Delphi 2007 and above
DELPHI2009UP Delphi 2009 and above
DELPHI2010UP Delphi 2010 and above
DELPHIXEUP Delphi XE and above
DELPHIXE2UP Delphi XE2 and above
DELPHIXE3UP Delphi XE3 and above
DELPHIXE4UP Delphi XE4 and above
DELPHIXE5UP Delphi XE5 and above
DELPHIXE6UP Delphi XE6 and above
DELPHIXE7UP Delphi XE7 and above
DELPHIXE8UP Delphi XE8 and above
DELPHI10UP Delphi 10 and above
DELPHI10_1UP Delphi 10.1 and above
DELPHI10_2UP Delphi 10.2 and above
DELPHI10_3UP Delphi 10.3 and above
KYLIX1UP Kylix 1.0 and above (any Kylix)
TP4UP Turbo Pascal 4.0 and above
TP5UP Turbo Pascal 5.0 and above
TP55UP Turbo Pascal 5.5 and above
TP6UP Turbo Pascal 6.0 and above
TPW10UP Turbo Pascal for Windows 1.0 and above (Any Turbo Pascal for Windows)
TPW15UP Turbo Pascal for Windows 1.5 and above

Compiler types:

SymbolMeaning
TP Turbo Pascal
TPW Turbo Pascal for Windows
BP Borland Pascal (not Delphi or C++Builder)
DELPHI any Delphi version (but not C++Builder or Kylix)
KYLIX any Kylix version
CBUILDER any C++Builder (Pascal)
FPC Free Pascal
FPC_DELPHI Free Pascal in Delphi-compatibility mode

Target platforms compiler types:

SymbolMeaning
DELPHI_16BIT 16bit Delphi (but not C++Builder!)
DELPHI_32BIT 32bit Delphi (but not C++Builder)
DELPHI_64BIT 64bit Delphi (but not C++Builder)
CBUILDER_32BIT 32bit C++Builder's Pascal (but not Delphi)

Target platforms:

SymbolMeaning
DOS any DOS (plain and DPMI)
DOS_OR_WINDOWS Any DOS or any Windows
LINUX any Linix platform
LINUX32 32bit Linux
MOBILE Android or iOS
MSWINDOWS any Windows platform
PROTECTEDMODE 16bit DPMI DOS
REALMODE 16bit realmode DOS
WIN16 16bit Windows
WIN32 32bit Windows (Delphi symbol)
WIN64 64bit Windows (Delphi symbol)
OSX Any MacOs platform
OSX64 64-bit OSX platform

Features:
Compiler features:

SymbolMeaning
ANONYMOUS_METHODS Anonymous methods support.
ASM ASM supported.
ASM_CPUID cpuid instruction supported by internal assembler.
ASM_INLINE INLINE statement (assembler) supported.
ASSIGN_CONSTANT_ARRAY_TO_DYNAMIC Dynamic arrays can be initialized from a constant array.
DEFAULT_WIDESTRING Strings default to widestrings.
DELEGATION Delegations supported.
DIRECT_RAM_ACCESS Direct access to RAM allowed.
DYNAMIC_ARRAYS Dynamic arrays supported.
DYNAMIC_ARRAY_CONCATENATION Dynamic array concatenation supported.
DYNAMIC_OBJECTS Dynamic (heap) objects supported.
DYNAMIC_STRINGS Dynamic strings supported.
ENUMERATORS Enumerators and for...in supported.
EXCEPTIONS Exceptions supported.
FUNCTION_RESULT_REQUIRED Functions must have a target for what they return.
GENERICS Generics supported.
INT64 Non-Comp 64-bit integers (int64) supported.
MOBILE Mobile device (Android, IOS)
NOVCL No VCL on this platform
OLEVARIANT OLEVariant is supported.
OVERLOAD Overloaded methods are supported.
OVERLOAD_FUNCTIONS Overloaded functions are supported.
POINTERMATH $POINTERMATH diretive supported.
PROPERTIES Properties supported.
REAL48 Real48 type supported.
RECORD_RETURNS Return of record structures supported.
REINTRODUCE reintroduce is supported on methods.
SCOPED_ENUMS Scoped enums supported.
STATIC_PROPERTIES Properties are allowed in static (old) classes.
STDCALL_SUPPORTED stdcall calling convention supported.
UNICODE_STRING UnicodeString type supported.
UNIT_INIT_AND_FINAL Unit initialization/finalization supported.
UNIT_NAME_DOTS Unit names can contain dots (.) in them.
VARIABLE_DECLARATION_ASSIGN Assigning a variable a value in its declaration supported.
WEAK_REFERENCES Weak and unsafe references are supported.
WIDESTRINGS Widestrings are supported.

Component (LCL, VCL) library features:

SymbolMeaning
CL_ACTIONMANAGER_LARGE_IMAGE TActionManager.DisabledImages, .LargeImages, and .LargeDisabledImages supported.
CL_APPLICATION_DEFAULTFONT TApplication.DefaultFont supported.
CL_BITMAP_ALPHA TBitmap.AlphaFormat supported.
CL_BUTTON_IMAGES TButton.CommandLinkHint, .DropDownMenu .OnDropDownClick, .Images, .ImageIndex, .HotImageIndex, .DisabledImageIndex, .PressedImageIndex, .SelectedImageIndex, .DropDownMenu, .ElevationRequired, .ImageAlignment, .ImageMargins, .CommandLinkHint, .Style, and .OnDropDownClick supported.
CL_BUTTONEDEDIT TButtonedEdit supported.
CL_CATEGORY_PANEL TCategoryPanel and TCategoryPanelGroup supported.
CL_CB_HINT TComboBox.TextHint supported.
CL_CHARACTER TCharacter class supported.
CL_CONTROL_CUSTOMHINT TControl.CustomHint and .ParentCustomHint supported.
CL_CONTROL_HELPCONTEXT TControl.HelpContext, .HelpKeyword, and .HelpType supported.
CL_CUSTOMHINT TCustomHint and TBalloonHint supported.
CL_CUSTOMLISTVIEW_ONCHECKED TCustomListView.OnItemChecked support.
CL_DBIMAGE_PROPORTIONAL TDBImage.Proportional supported.
CL_EDIT_ALIGNMENT TEdit/TLabeledEdit.Alignment, .NumbersOnly, and .TextHint supported.
CL_ENCODING TEncoding supported.
CL_GRAPHIC_TRANSPARENCY TGraphic.SupportsPartialTransparency supported.
CL_IMAGELIST_ALPHA TImageList.ColorDepth supported.
CL_LABEL_GLOW TLabel.GlowSizes supported.
CL_LINKLABEL TLinkLabel supported.
CL_LIST_CAPACITY TList has .Capacity property.
CL_LISTGROUPS TTListGroup and TListGroups supported.
CL_LISTVIEW_GROUPS TListView.GroupView, .Groups, .GroupHeaderImages, and .OnItemChecked supported.
CL_CUSTOMHEADER_CHECKBOXES TCustomHeaderControl.CheckBoxes, .NoSizing, and .OverFlow supported. THeaderSection.Checkbox, .Checked, and .FixedWidth supported.
CL_MASKEDIT_ALIGNMENT TMaskEdit.Alignment and .TextHint supported.
CL_MEMO_CHARCASE TMemo.CharCase supported.
CL_OBJECT_EQUALS TObject.Equals, .GetHashCode, and .ToString supported.
CL_PANEL_HIDE_CAPTION TPanel.ShowCaption supported.
CL_POPUPACTIONBAR_STYLE TPopupActionBar.Style supported.
CL_PROGRESSBAR_CUSTOM TProgressBar.Style, .MarqueeInterval, .BarColor, .BackgroundColor, .SmoothReverse, and .State supported.
CL_RADIOGROUP_WORDWRAP TRadioGroup.WordWrap supported.
CL_RIBBONS TRibbon, TRibbonApplicationMenuBar, and TRibbonQuickAccessToolbar supported.
CL_SCREEN_MESSAGEFONT TScreen.MessageFont supported.
CL_STREAMREADER TStreamReader and TStreamWriter supported.
CL_STRINGBUILDER TStringBuilder supported.
CL_STRINGREADER TStringReader and TStringWriter supported.
CL_TRAYICON_BALLOONCLICK TTrayIcon.OnBalloonClick supported.
CL_TREEVIEW_DISABLED TTreeView supports disabled tree nodes and image index for expanded nodes.
CL_WINCONTROL_DOUBLEBUFFERED TWinControl.DoubleBuffered and .ParentDoubleBuffered supported.

The following are defined for C++ programs:


Platform:
Exact compiler versions:
SymbolMeaning
BORLANDCPP2 Borland C++ 2.0
BORLANDCPP3 Borland C++ 3.0
BORLANDCPP3_1 Borland C++ 3.1
BORLANDCPP4 Borland C++ 4.0
BORLANDCPP5 Borland C++ 5.0
BORLANDCPP5_5 Borland C++ 5.5
BORLANDCPP5_6 Borland C++ 5.6
CBUILDER1 C++Builder 1.0
CBUILDER3 C++Builder 3.0
CBUILDER4 C++Builder 4.0
CBUILDER5 C++Builder 5.0
CBUILDER2006 C++Builder 2006
CBUILDER2007 C++Builder 2007
CBUILDER2009 C++Builder 2009
CBUILDER2010 C++Builder 2010
CBUILDERXE C++Builder XE
CBUILDERXE2 C++Builder XE2
CBUILDERXE3 C++Builder XE3
CBUILDERXE4 C++Builder XE4
CBUILDERXE5 C++Builder XE5
CBUILDERXE6 C++Builder XE6
CBUILDERXE7 C++Builder XE7
CBUILDERXE8 C++Builder XE8
CBUILDERSEATTLE C++Builder Seattle

Minimum compiler versions:

SymbolMeaning
BORLANDCPP2UP Borland C++ 2.0 and above
BORLANDCPP3UP Borland C++ 3.0 and above
BORLANDCPP3_1UP Borland C++ 3.1 and above
BORLANDCPP4UP Borland C++ 4.0 and above
BORLANDCPP5UP Borland C++ 5.0 and above
BORLANDCPP5_5UP Borland C++ 5.5 and above
BORLANDCPP5_6UP Borland C++ 5.6 and above
CBUILDER1UP C++Builder 1.0 and above (any C++Builder)
CBUILDER3UP C++Builder 3.0 and above
CBUILDER4UP C++Builder 4.0 and above
CBUILDER5UP C++Builder 5.0 and above
CBUILDER2006UP C++Builder 2006 and above
CBUILDER2007UP C++Builder 2007 and above
CBUILDER2009UP C++Builder 2009 and above
CBUILDER2010UP C++Builder 2010 and above
CBUILDERXEUP C++Builder XE and above
CBUILDERXE2UP C++Builder XE2 and above
CBUILDERXE3UP C++Builder XE3 and above
CBUILDERXE4UP C++Builder XE4 and above
CBUILDERXE5UP C++Builder XE5 and above
CBUILDERXE6UP C++Builder XE6 and above
CBUILDERXE7UP C++Builder XE7 and above
CBUILDERXE8UP C++Builder XE8 and above

Compiler types:

SymbolMeaning
CBUILDER any C++Builder
BORLANDCPP any Borland C++
MINGW MinGW

Target platforms compiler types:

SymbolMeaning
CBUILDER_32BIT 32bit C++Builder

Target platforms:

SymbolMeaning
_32BIT 32-bit
_64BIT 64-bit
ARM Arm.
CONSOLE Console mode
LINUX any Linux platform
MACOSX OSX
MSWINDOWS any Windows platform
WIN32 32-bit Windows
WIN64 64-bit Windows

Feature:

SymbolMeaning
STDCALL_SUPPORTED STDCALL calling convention supported

The following are defined for all programs:



C&C: CC_Regression_Test C&C Surrounds regression test code. If defined, the application will run regression tests when it starts. CC_Balance C&C Used to validate proper pairing of matched operations (such as allocations and deallocations). CC_Debug C&C Surrounds debugging code. If defined, debugging code will be included in the compile. This can slow the application down due to the extra work involved with logging data, etc. It may also enable certain options, especially on UI elements. CC_Auto_Free_Application_Manager C&C If defined, the application manager is automatically destroyed as the application exits. CC_Auto_Free_Operating_System C&C If defined, the Operating System interface is automatically destroyed as the application exits. CC_Track_Resources C&C If defined, resources are tracked. CC_Validate C&C If defined, data is validated. For instance, calls to methods of nil objects is checked for.