Projektübernahme nach c++Builder2009
-
Hallo,
ich arbeite noch mit c++Builder5.0 an einem Projekt. Wenn ich nun auf C++Builder2009 update, stehen sicher einige Umstellungsarbeiten an. Kann mich jemand auf die Schwierigkeiten vorbereiten?Danke im Voraus.
-
Der native Stringtyp, also System::String, ist in C++Builder 2009 nicht mehr AnsiString, sondern UnicodeString; das dürfte die meisten, aber auch eigentlich die einzigen Schwierigkeiten bereiten.
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1602923.html#1602923Einen guten Überblick über Unicode und die sonstigen Neuerungen bietet das Delphi 2009 Handbook.
-
Hübsch....
dann weiß ich ja, was ich die nächsten 2 Monate mache.Ich hab dann noch viel Assemblercode drin ( wegen der Speed ), geht wenigstens das?
Ich hab mal versucht die Typbibliothek von Corel Draw 10 nach c++B5 rüberzuholen, waren aber viel zuviele Fehler drinnen. Ich würd's gern nochmal mit mit C++B2009 und CorelDrawX14 probieren. Gibts hierzu Erfahrungen?
Danke.
-
rudiM schrieb:
ich arbeite noch mit c++Builder5.0 an einem Projekt. Wenn ich nun auf C++Builder2009 update, stehen sicher einige Umstellungsarbeiten an. Kann mich jemand auf die Schwierigkeiten vorbereiten?
Nehmen den erwähnten String-Umstellungen gibt es noch ein paar wesentliche Probleme, falls du irgendwo spezielle Komponenten nimmst.
1. Gibt es ein paar wenige BCB5-Komponenten die ausgetauscht wurden (Ich glaube u.a. im Reportingbereich), oder wo es sich empfiehlt umzustellen (BDE wäre so ein Kandidat den man möglichst entsorgen sollte; dies ist aber die Kür und nicht zwangsweise zu machen).
2. Gibt es nicht gerade wenige Fremdkomponenten die nicht mehr weiterentwickelt werden (zumindestens in unseren Projekt ist dies aktuell noch ein KO-Kriterium für den kurzfristigen Umstieg, hier werden wir noch Alternativen suchen müssen).
Bezüglich der Stringumstellung wird bei uns im wesentlichen ein Projektweites Suchen/Ersetzen von AnsiString in String reichen, nur an wenigen Stellen wird auf irgendwelche Zeichenbasierenden Funktionalitäten zugegriffen (dies lässt sich an einer Hand abzählen).
cu André
-
hallo,
nun bin ich dabei von BCB 5.0 auf 2009 umzustellen.
----------------------------------------------------Ich habe die Package von UnitOOPS verwendet. Geht nicht.
http://www.unitoops.com/default.htm#UOOLE ist von 1999Gibt es was anderes einfaches für Filenamendrop?
-------------------------------------------------------Im integrierten Assembler gibt es auch Schwierigkeiten.
Es wird Fehler E2313 gemeldet bei:mov eax, esi[(ecx-1)*4]
wobei der Inhalt der runden Klammer gemeint ist. In BCB5.0 funktionierts.
Eine andere Adressierung kann ich nicht verwenden.
Gibt es eine Option?
---------------------------------------------------------------------Mfg Rudi
-
Braucht man dafür eine Komponente? Reicht nicht auch das hier?
http://www.bytesandmore.de/rad/cpp/snipp/sc03026.php
-
rudiM schrieb:
Gibt es was anderes einfaches für Filenamendrop?
Ich hatte dafür mal das hier verwendet.
rudiM schrieb:
Im integrierten Assembler gibt es auch Schwierigkeiten.
Es wird Fehler E2313 gemeldet bei:mov eax, esi[(ecx-1)*4]
wobei der Inhalt der runden Klammer gemeint ist. In BCB5.0 funktionierts.
In C++Builder 6 nicht, etwas älteres habe ich gerade nicht zur Hand.
Der Grund dürfte sein, daß der Inline-Assembler von BCC und DCC für Delphi und C++Builder 6 neu geschrieben wurde, um ihn mit Kylix auch unter Linux einsetzen zu können; offenbar wurden dabei ein paar Details übersehen. Wenn C++Builder 5 dafür zulässigen Code generieren konnte, ist das eine Regression, und du solltest einen QC-Report darüber verfassen.Zwischenzeitlich kannst du ja einfach
MOV EAX, ECX DEC EAX MOV EAX, ESI[EAX*4]
benutzen
-
Hallo audacia,
ich bin ja sowas von
,aber Du hast mich draufgebracht. Ich wollte Dir nochmal ein Beispiel zeigen, warum ich Deinen Codevorschlag nicht nehmen kann (Zeitkritisch und Registermangel). Ich hab also im Quelltext nach der Stelle gesucht und dabei etwas an anderer Stelle gefunden. Diese Konstruktion:
mov eax, [ecx*4-4]
sieht ja ein Blinder, dass das Dasselbe ist, und ich habs vergessen!
Ich glaub den QC-Report kann ich mir sparen, so gehts.Danke.