Nein, sie sind nicht identisch.
WideString
ist nur ein Wrapper für den ActiveX/COM BSTR
Typ. Sie benötigen es, wenn Sie mit Strings in ActiveX/COM arbeiten.
String
in Delphi 2009 und später ist ein Alias für UnicodeString
, die Unicode-Zeichen enthalten kann, so wie BSTR
tut, aber es ist nicht das gleiche wie WideString
. WideString
wird vom COM-Speichermanager zugewiesen und nicht als Referenz gezählt. UnicodeString
wird vom RTL-Speichermanager zugewiesen und wird als Referenz gezählt, genau wie AnsiString
.
Sie sollten wo immer möglich (Unicode)String
verwenden und nur WideString
für COM-Interop verwenden, oder mit Legacy-Bibliotheken umgehen, die WideString
für Unicode-Unterstützung verwenden.