Sdílet prostřednictvím


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 a long 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_ta ptrdiff_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 jako size_t hodnotu nebo time_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 do int ú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++