Ich arbeite derzeit daran, eine 32-Bit-Anwendung in eine 64-Bit-Anwendung in C zu konvertieren. Diese Anwendung arbeitet derzeit an der x86-Architektur (Windows, OSX, Unix, Linux). Bevor ich also mit dem Programmieren beginne, wollte ich wissen, was ich beim Konvertieren der Anwendung beachten muss.
Konvertieren einer 32-Bit-Anwendung in eine 64-Bit-Anwendung in C
Karl Beaudoin
-
Verwenden Sie uintptr_t anstelle von intptr_t. Sie brauchen keine Schilder an Adressen.
– Jonathan Leffler
5. Januar 2009 um 2:32 Uhr
-
Die meisten Leute führen keine Manipulationen an den gecasteten Werten durch; Sie werden normalerweise nur verwendet, um einen Wert in einen Callback zu kopieren, also ist intptr_t in Ordnung. Obwohl ich zustimme, wenn der Unterschied für den Code von Bedeutung wäre, wäre dies ein interessanter Punkt.
– geocar
6. Januar 2009 um 12:52 Uhr
-
Eigentlich,
long
ist generell das Problem, da unter Windowslong
bleibt bei 32 Bit, aber unter Unixlong
geht von 32 Bit auf 64 Bit.– Quantenmechanik
8. Juni 2012 um 1:17 Uhr
Ich bin mir nicht sicher, was du meinst. Haben Sie die Quelle der Anwendung, die Sie portieren möchten? Schlagen Sie vor, eine ix86-Binärdatei in eine x86_64-Binärdatei zu übersetzen?
– dmckee — Ex-Moderator-Kätzchen
4. Januar 2009 um 22:31 Uhr
Da er C angegeben hat, kann ich davon ausgehen, dass er den C-Code für die App hat. 🙂
– jalf
4. Januar 2009 um 22:37 Uhr
Ja, ich habe die Quelle der Anwendung, aber ich denke, dass der Autor sie nicht auf 64 Bit ändern wollte.
– Charles Beaudoin
4. Januar 2009 um 22:45 Uhr