sgcWebSockets 库的源码目录中有一个包含所有条件编译开关的配置文件 sgcVer.inc。
打开该文件可以看到大量条件定义——基本上每个 Delphi / C++ Builder 版本都有一组对应的条件定义。例如,Rad Studio 10.3 对应以下内容:
{$IFDEF VER330} { Delphi 10.3 }
{$DEFINE D2006}
{$DEFINE D2007}
{$DEFINE D2009}
{$DEFINE D2010}
{$DEFINE DXE}
{$DEFINE DXE2}
{$DEFINE DXE3}
{$DEFINE DXE4}
{$DEFINE DXE5}
{$DEFINE DXE6}
{$DEFINE DXE7}
{$DEFINE DXE8}
{$DEFINE D10}
{$DEFINE D10_1}
{$DEFINE D10_2}
{$DEFINE D10_3}
{$DEFINE INDY10_1}
{$DEFINE INDY10_2}
{$DEFINE INDY10_5_5}
{$DEFINE INDY10_5_7}
{$DEFINE INDY10_6}
{$DEFINE INDY10_6_2_5366}
{$IFNDEF BCB}
{$IFNDEF MACOS}
{$IFNDEF ANDROID}
{.$DEFINE IWIX}
{.$DEFINE IWXI}
{.$DEFINE IWXIV}
{$ENDIF}
{$ENDIF}
{$IFNDEF NEXTGEN}
{$DEFINE SGC_JSON_INTF}
{$ENDIF}
{$ENDIF}
{$ENDIF}
编译器块
第一批指令与 IDE 版本相关,每个 IDE 版本都有自己的编译器,通常不建议修改这些指令。
其次是与 Indy 版本相关的编译器开关。默认情况下,sgcVer.inc 配置为与 Rad Studio 附带的 Indy 版本兼容,但有时需要将 Indy 库更新到最新版本,此处可自定义 Indy 版本并注释或取消注释相应的编译器指令。
最后是 Intraweb 的编译器指令。事实上,Intraweb 在较新版本中已被弃用,默认情况下不需要,但若要使用 Intraweb 组件,可在此配置所用的 Intraweb 版本。
