Obecné problémy migrace v 64bitovém prostředí Visual C++
Při použití kompilátoru Microsoft C++ (MSVC) k vytváření aplikací pro spuštění v 64bitovém operačním systému Windows byste měli vědět o následujících problémech:
A
int
along
jsou 32bitové hodnoty v 64bitových operačních systémech Windows. U programů, které plánujete kompilovat pro 64bitové platformy, byste měli být opatrní, abyste nepřiřadili ukazatele na 32bitové proměnné. Ukazatele jsou 64bitové na 64bitových platformách a pokud ji přiřadíte 32bitové proměnné, zkrátíte hodnotu ukazatele.size_t
,time_t
aptrdiff_t
jsou 64bitové hodnoty v 64bitových operačních systémech Windows.time_t
je 32bitová hodnota v 32bitových operačních systémech Windows v sadě Visual Studio 2005 a starších verzích.time_t
je teď ve výchozím nastavení 64bitové celé číslo. Další informace najdete v tématu Správa času.Měli byste vědět, kde váš kód přebírá
int
hodnotu a zpracovává ji jakosize_t
hodnotu nebotime_t
hodnotu. Je možné, že se číslo může zvětšit na větší než 32bitové číslo a data se zkrátí, když se předají zpět doint
úložiště.
Modifikátor %x (šestnáctkový int
formát) printf
nebude fungovat podle očekávání v 64bitovém operačním systému Windows. Bude fungovat pouze na prvních 32 bitech hodnoty, která se jí předá.
%I32x slouží k zobrazení 32bitového celočíselného typu v šestnáctkovém formátu.
K zobrazení 64bitového celočíselného typu v šestnáctkovém formátu použijte %I64x.
%p (šestnáctkový formát ukazatele) bude fungovat podle očekávání v 64bitovém operačním systému Windows.
Další informace naleznete v tématu:
Viz také
Konfigurace projektů C++ pro 64bitové cíle x64
Průvodce přenosem a upgradem Visual C++