Anzeigen: Delphi C++
Anzeigeeinstellungen

Release-Hinweise für C++Builder für 64-Bit-Windows

Aus RAD Studio XE3
Wechseln zu: Navigation, Suche

Nach oben zu Neuerungen in C++Builder für 64-Bit-Windows


Das Release von C++Builder für 64-Bit-Windows stellt auch das Update 1 für das RAD Studio XE3-Release dar, das sowohl die Delphi- als auch die C++-Personality enthält. Diese Release-Hinweise enthalten wichtige ergänzende Informationen, die speziell das Release C++Builder für 64-Bit-Windows betreffen. Lesen Sie diese Seite bitte vollständig durch. Die aktuelle Version dieser Release-Hinweise finden Sie unter http://docwiki.embarcadero.com/RADStudio/XE3/de/Release-Hinweise_f%C3%BCr_C%2B%2BBuilder_f%C3%BCr_64-Bit-Windows.

  • Die neueste Version der Hilfethemen finden Sie im RAD Studio-DocWiki.
    • Die DocWiki-Seiten werden kontinuierlich nach dem Release und während des Produktaktualisierungszyklus aktualisiert.
    • Hilfe-Updates werden in Abständen veröffentlicht, aber das DocWiki enthält immer die aktuellste Hilfe.

Inhaltsverzeichnis

Allgemeine Hinweise

Installieren Sie keine fremden Dateien in den \bin-Verzeichnissen

Embarcadero lässt das Speichern von nicht signierten DLLs von Drittherstellern in den \bin-Verzeichnissen des Produkts nicht zu:

  • $(BDS)\bin
  • $(BDS)\bin64

Falls dies dennoch versucht wird, tritt ein Lizenzvalidierungsfehler auf.

FastReport für 64-Bit-Windows ist demnächst verfügbar

Die Embarcadero-Edition von FastReport ist gegenwärtig verfügbar für:

  • Delphi (32-Bit-Windows und 64-Bit-Windows)
  • C++Builder (32-Bit-Windows)

Die FastReport-Version für C++Builder für 64-Bit-Windows erscheint demnächst und steht dann als kostenloser Download für registrierte Benutzer von C++Builder XE3 und RAD Studio XE3 unter http://cc.embarcadero.com/reg/rad_studio zur Verfügung.

Hinweise für C++Builder

Angeben des Debug-Pfades für Delphi-Packages

Wenn Sie Delphi-Packages debuggen möchten, die in einer C++-Anwendung für 64-Bit-Windows verwendet werden, müssen Sie zuerst die folgenden Konfigurationsschritte ausführen:

  1. Wählen Sie Tools > Optionen > Debugger-Optionen > Embarcadero-Debugger.
  2. Fügen Sie im Feld Suchpfad der Debug-Symbole einen vollständigen Pfad in der folgenden Form hinzu:
    C:\Programme (x86)\Embarcadero\RAD Studio\10.0\lib\win64\debug
  3. Klicken Sie auf OK.

Hinzufügen des Projektverzeichnisses zum Include-Pfad

Die IDE fügt gegenwärtig das Projektverzeichnis automatisch dem #include-Pfad hinzu, obwohl die Standardeinstellung für Projektverzeichnis zu Include-Pfad hinzufügen False ist (auf der Seite C++-Compiler Verzeichnisse und Bedingungen). Dieses Verhalten wird vermutlich später geändert. Dann müssen Sie diese Option auf True setzen, wenn das Projektverzeichnis automatisch dem #include-Pfad hinzugefügt werden soll.

Weitere Informationen finden Sie unter #include.

Hinzufügen von Priorität für #pragma exit

BCC32 und BCC64 unterscheiden sich hinsichtlich der Standardpriorität, die sie #pragma exit zuweisen (wird zugewiesen, wenn die optionale Prioritätsangabe weggelassen wird).

Aufgrund eines Fehlers in BCC32 wird #pragma exit-Routinen ohne angegebene Priorität die Priorität 30 zugewiesen. Daher müssen Sie einer exit-Routine in BCC64 explizit die Priorität 30 zuweisen, damit sie mit dem BCC32-Verhalten für exit-Routinen ohne Priorität übereinstimmen. In BCC64 müssen Sie die Priorität einer exit-Routine beispielsweise auf 30 setzen, wenn die Routine nach Ausführung von __ExitVCL aufgerufen werden soll. (Hinweis: __ExitVCL wird mit der Priorität 31 ausgeführt.)

Weitere Informationen finden Sie unter #pragma exit und #pragma startup.


Für WebSnap-Anwendungen muss eventuell WebInit.cpp hinzugefügt werden

Wenn Sie eine C++-WebSnap-Anwendungen mit einer 64-Bit-Windows-Zielplattform erstellen, werden möglicherweise Linker-Fehler wie die folgenden angezeigt:

[ilink64 Error] Error: Unresolved external '__dso_handle' referenced from E:\EMBARCADERO\RAD STUDIO\10.0\LIB\WIN64\RELEASE\WEBINIT.O
[ilink64 Error] Error: Unresolved external '__cxa_atexit' referenced from E:\EMBARCADERO\RAD STUDIO\10.0\LIB\WIN64\RELEASE\WEBINIT.O

Fügen Sie zur Lösung dieses Problems dem Projekt in der Projektverwaltung die Datei WebInit.cpp hinzu. WebInit.cpp befindet sich im Verzeichnis $(BDS)\source\internet.

Aktualisieren Sie den Designer, wenn TBindSourceDB nach Laden einer Datenmenge nicht gefüllt wird

In VCL- oder FireMonkey-Anwendungen mit mehreren Formularen und/oder Datenmodulen kann eine in TBindSourceDB eingebettete Datenmenge im LiveBindings-Designer veraltete Unter-Member enthalten, wenn es sich um eine externe Datenmenge des Formulars handelt, das im Designer aktiv ist. Veraltete Member können auch aufgrund von Datenmengenänderungen vorhanden sein. Mit dem Befehl Designer aktualisieren des Kontextmenüs können Sie dieses Aktualisierungsproblem umgehen.

Programmabbruch kann zum Absturz des Debuggers führen

Der C++Builder-Debugger für 64-Bit-Windows kann abstürzen, wenn Sie Programm abbrechen (Strg+F2) wählen, während der Debugger an einem Datenhaltepunkt anhält.

SOAP-Unterstützung

Ein in C++Builder für 64-Bit-Windows entwickelter SOAP-Client kann einen Server aufrufen, der Ganzzahlen, Strings und Strukturen, die Ganzzahlen und Strings enthalten, übergibt. Dynamische String-Arrays werden noch nicht unterstützt.

Indy UDP-Fehler

C++-Indy-Projekte, die UDP (User Datagram Protocol) verwenden, lösen eventuell Compiler-Fehler wie die folgenden aus:

Gleitkomma-Exceptions für externen Code, wie OpenGL

Gleitkomma-Exception können auftreten, wenn C++-Code für 64-Bit-Windows mit externem Code, wie OpenGL, OLEDB, TWebBrowser, .NET-Assembly oder ActiveX-Steuerelementen, ausgeführt wird. Auf der 32-Bit-Windows-Plattform können Sie diese Exceptions durch Aufrufe von _control87 umgehen. _control87 setzt das Gleitkommaregister in 32-Bit-Windows (das FPU-Register), in 64-Bit-Windows ist aber SSE das Gleitkommaregister.

Sie müssen stattdessen für Code, der die Gleitkomma-Exceptions auslöst, System::Math::SetExceptionMask(..) verwenden. Damit wird entweder SetFPUExceptionMask (für 32-Bit-Windows) oder SetSSEExceptionMask (für 64-Bit-Windows) aufgerufen. In der Regel müssen Sie die Gleitkomma-Exceptions bei der Interaktion mit externem Code maskieren. Exceptions sollten beim Überschreiten von Grenzen maskiert bzw. demaskiert werden.

Hinweise zum Debugger

  • Das Debuggen von zwei Dateien mit demselben Namen wird nicht unterstützt.
  • Die Unterstützung für das Debuggen von Code, der Exceptions auslöst, ist unvollständig.
    Beispielsweise werden keine Exceptions bei der Auswertung von Funktionsaufrufen unterstützt.
  • Lokal statische und dateistatische Variablen können nur im aktuellen Gültigkeitsbereich ausgewertet werden.
  • Die Auswertung einiger Funktionsaufrufe funktioniert möglicherweise nicht, insbesondere bei geerbten Delphi-Typen, wie VCL- und RTL-Membern.

Weitere Informationen finden Sie unter Debuggen von C++Builder-Anwendungen für 64-Bit-Windows.

Siehe auch

Frühere Versionen
In anderen Sprachen