B
Ich meinte, wenn du deine dll von einen Programm nutzen willst welches auf einen anderen Compiler erzeugt wurde (evtl auch andere Sprache). Da kennt man evtl. die VCL nicht. Das kann auch verschiedenen Versionen des BCB betreffen. Falls z.Bsp. die Implementation von VCL-Klassen geändert wurde bekommst du evtl. Probleme.
POD - plain old Data
Das sind die alten Typen, die auch C schon kennt. Sowas wie int, double, char, char* etc. sowie structs und classes, die nur PODs enthalten (kein Konstruktor, Destruktor etc.).
Du könntest natürlich auch einen Zeiger auf AnsiString nutzen. Das löst aber das problem nicht. Nimm lieber char* bei dll-Schnittstellen.