VS 2010 Problem mit 64-Bit-Integer [gelöst]

Nightshift

Grand Admiral Special
Mitglied seit
19.08.2002
Beiträge
4.447
Renomée
81
Standort
Tief im Weeeeeesss-teheheheeen ;-)
  • SIMAP Race
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2011
  • BOINC Pentathlon 2012
  • BOINC Pentathlon 2013
Hallo zusammen!

Und wieder einmal habe ich ein VS 2010 spezifisches Problem. Ich glaube langsam, dass das eine dysfunktionale Beziehung ist. ;D

Das Problem hängt mit dem Umgang von VS 2010 mit 64-Bit-Integern zusammen.
Da gibt es ja die Visual Studio eigene __int64-Spezifikation bzw. auch long long.
Nun habe ich so eine Variable deklariert und siehe da - ich kann in ihr dennoch nur einen Wert eines 32-Bit-Integers speichern. Bei größeren Werten kommt es zum Pufferüberlauf.

Sprich, bei folgendem Code
Code:
__int64 x = 2147483648;
fprintf(pfiAusgabeZeiger, "mult = %li\n", x);
kommt daher als Ausgabe "x = -2147483648"

Eigentlich sollte __int64 immer eine Größe von 64 Bit ausweisen, unabhängig ob für 32 Bit oder 64 Bit kompiliert wird.
Bei mir ist es genau anders herum: Egal ob ich 32 Bit oder 64 Bit in den Projekteinstellungen auswähle, der Integer bleibt 32 Bit groß.
Und nein, um 64 Bit große Integer komme ich leider nicht herum, die brauche ich.

Es handelt sich um ein Projekt, das als Win32-Konsolen-Projekt erstellt wurde.


Die Frage ist: Was kann ich da tun? Liege ich vielleicht doch nur wieder in Konflikt mit irgendwelchen Projekteinstellungen?
In erster Linie hab ich da die "/D WIN32" Option im Auge. Ohne die bekomme ich aber erstmal neue Probleme.

Die Befehlszeile lautet:
Code:
/Zi /nologo /W3 /WX- /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Gm /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fp"x64\Debug\fft_test.pch" /Fa"x64\Debug\" /Fo"x64\Debug\" /Fd"x64\Debug\vc100.pdb" /Gd /TP /errorReport:queue
 
Zuletzt bearbeitet:
Häng mal ein i64 dran:
Code:
__int64 x = 2147483648i64;
 
Zurück
Oben Unten