Zitat von
Muetze1:
Das eigentliche Problem ist eher, dass ich mit der Deklaration in der Pascal Quelle extra kein Alias angelegt habe sondern definitiv einen neuen Typ (das zusätzliche type Keyword bei der Deklaration) und somit verstehe ich nicht, wie der Header Generator diesen zwar übernimmt aber ihn bei seiner Nutzung nicht entsprechen übernimmt. Der neue Typ ist definiert und wird explizit von der Funktion genutzt und er kann ihn so 1:1 übertragen, tut dies aber nicht.
Das Problem besteht seit der ersten Version von C++Builder und ist schlicht darin begründet, daß C++ keine "Strong Typedefs" kennt. Daher wurde aus jedem String in Delphi ein AnsiString in C++Builder - und nun muß CodeGear bei der
Unicode-Umstellung damit fertigwerden, daß nicht nur praktisch jeder C++Builder-Benutzer, sondern auch aller bisher vom Header-Generator erstellte Code explizit AnsiStrings verwendet.
Jedoch wird sich an der Tatsache, daß es kein C++Builder-Äquivalent zu Delphis "Strong Typedef"-Variante gibt, vermutlich nichts ändern, als bis eine solche endlich im C++-Standard festgelegt wurde. Dies wurde längst vorgeschlagen und wird nicht nur von CodeGear sehnlichst erwartet, aber offenbar scheint das Komitee sich mit der Bearbeitung dieses Problemes noch Zeit zu lassen: wie aus
diesem und
diesem Dokument hervorgeht, wird die Problematik voraussichtlich nicht mehr im Rahmen des kommenden Standards abgehandelt.