C++Builder XE2, XE3, XE4, XE5 & XE6 has a problem properly linking generic classes like TDictionary<Srtring,Integer>. A workaround is to set in application option Link with runtime packages = false.
However version earlier the XE6 will start to report errors like:
[ilink32 Error] Error: Unresolved external 'toupper' referenced from C:\PROGRAM FILES (X86)\EMBARCADERO\RAD STUDIO\11.0\LIB\WIN32\DEBUG\RTL.LIB|System.RegularExpressionsAPI
A worakround is to place in a form .cpp code following lines:
#pragma alias "toupper" = "_toupper"
#pragma alias "tolower" = "_tolower"
#pragma alias "isupper" = "_isupper"
#pragma alias "isalnum" = "_isalnum"
#pragma alias "isalpha" = "_isalpha"
#pragma alias "iscntrl" = "_iscntrl"
#pragma alias "isdigit" = "_isdigit"
#pragma alias "isgraph" = "_isgraph"
#pragma alias "isleadbyte" = "_isleadbyte"
#pragma alias "islower" = "_islower"
#pragma alias "isprint" = "_isprint"
#pragma alias "ispunct" = "_ispunct"
#pragma alias "isspace" = "_isspace"
#pragma alias "isxdigit" = "_isxdigit"
#pragma alias "strchr" = "_strchr"
#pragma alias "strncmp" = "_strncmp"
#pragma alias "memcmp" = "_memcmp"
#pragma alias "memmove" = "_memmove"