64 Bit Compiler



  • Hallo,

    kann mir vielleicht jemand sagen mit welchen Compilern in auch 64 Bit Anwendungen
    (EXE/DLL) erzeugen kann? Ich benutze gerne Dev-C++, geht das auch mit dem?
    Oder sollte das nur auf einem 64 Bit OS gehen? Und noch was. Muss ich dazu an meinem Code irgendwas ändern/beachten?
    Viele Fragen ich weiß 🙂 . Danke für die Mühe

    Gruß
    yogle



  • Der neue VC++2005 Compiler kann 64Bit Code und ist dazu Kostenlos!

    MFG Lars



  • ChrisFehn3 schrieb:

    Der neue VC++2005 Compiler kann 64Bit Code und ist dazu Kostenlos!

    MFG Lars

    Das was du meinst ist eine IDE. Der Compiler ist aber sowieso frei verfügbar und zum Beispiel im Platform SDK enthalten. Sofern man die Interaktion zwischen Dev-C++ und Compiler konfigurieren kann, wirst du diesen Compiler auch damit nutzen können.



  • Danke für die Antworten. Werde dann wohl mal Microsoft's Compiler versuchen.
    Muss ich denn noch etwas im Code ändern oder auf etwas bestimmtes achten, außer
    dass mein Programm wohl etwas mehr Speicher benötigen wird?

    Gruß
    yogle



  • Naja, eigentlich nicht viel. Du willst ja wahrscheinlich deine Anwendungen für beide Plattformen kompilierbar entwerfen. In dem Fall darfst du auf keinen Fall zwischen Pointer- und Integerdatentypen casten, da die Pointer zwischen 32 und 64 Bit unterschiedliche Größen haben, die Integerdatentypen wie int oder long aber nicht. Dafür kommen dann auf 64-Bit-Systemen Datentypen hinzu wie INT64, POINTER_64 und so weiter. Da Handles von Pointern abgeleitet sind, trifft die Größenänderungen auch auf sie zu.
    Aus dem Grund sollte man bei Bitoperationen mit Handles besondere Vorsicht walten lassen und lieber die von den Microsoft-Bibliotheken zur Verfügung gestellten Makros verwenden (z.B. INVALID_HANDLE_VALUE zum Überprüfenvon Handles auf 0xffffffff auf 32-Bit-Systemen und 0xffffffffffffffff auf 64-Bit-Systemen)
    Und dann spielt natürlich auch noch die Speicherausrichtung eine Rolle. Wenn du ein struct mit 4 DWORDs erzeugst, wird das auf 32-Bit-Systemen 16 Bytes im Speicher einnehmen. Auf 64-Bit-Systemen aber 32 Bytes, da es auf 64-Bit-Grenzen ausgerichtet wird. Hast du dich also auf die Speicherdarstellung bei 32Bit verlassen, wird das bei 64Bit Probleme erzeugen.
    Ansonsten gab's da noch eine Änderung mit der Registrierung unter 64-Bit-Windows, aber da hab ich momentan keinen Überblick drüber und das wird sich höchstwahrscheinlich auch nicht auf die Kompatibilität auswirken.



  • Also kostenlos kann der MS Compiler keinen 64bit Code erzeugen. Die kostenlosen Versionen können den Code auf 64bit Kompatibilität prüfen, was auch gut ist. Aber erstellen kann das nur die VS2005 Professional!



  • Artchi schrieb:

    Also kostenlos kann der MS Compiler keinen 64bit Code erzeugen. Die kostenlosen Versionen können den Code auf 64bit Kompatibilität prüfen, was auch gut ist. Aber erstellen kann das nur die VS2005 Professional!

    Ich hab's noch nicht probiert aber zumindest bei dem neuesten Platform SDK gibt es zu XP und 2003 eine 64-Bit Build Environment. Damit wird man doch wohl auch 64-Bit-Code erzeugen können!?


Anmelden zum Antworten