Sdílet prostřednictvím


Obecné problémy 64bitového přenesení Visual C++

Při vytváření aplikací pro spuštění operačního systému Windows 64-bit pomocí Visual C++, je třeba uvědomit následující skutečnosti:

  • int a long jsou 32bitové hodnoty na 64bitovém operačním systému. Měli by jste být opatrní u programů, které plánujete kompilovat pro 64bitové platformy, nepřiřazujte jim ukazatele na 32bitové proměnné. Ukazatelé jsou 64bitové na 64bitových platformách a měli byste zkrátit hodnotu ukazatele, pokud ho přiřadíte k 32bitové proměnné.

  • size_t a time_t a ptrdiff_t jsou 32bitové hodnoty na 64bitovém operačním systému.

  • time_tje 32bitová hodnota v 32bitových operačních systémech Windows verze Visual C++, Visual C++ 2005 před. time_tNyní je ve výchozím nastavení 64bitové celé číslo. Další informace naleznete v tématu Správa času.

    Je třeba věnovat pozornost, kde Váš kód přebírá hodnotu int a zpracuje ji jako hodnotu size_t nebo time_t. Je možné, že číslo může být větší než 32bitové číslo a data budou zkráceny, když je to předáno zpět do úložiště int.

%x (šestnáctkový formát int) modifikátor printf nemusí fungovat očekávaným způsobem na 64bitovém operačním systému. Pracují pouze na prvních 32bitových hodnotách, které jsou předány.

  • Použijte %I32x, chcete-li zobrazit celé číslo na 32bitovém operačním systému Windows.

  • Použijte %I64x, chcete-li zobrazit celé číslo na 64bitovém operačním systému Windows.

  • %p (šestnáctkový formát pro ukazatele) funguje očekávaným způsobem na 64bitovém operačním systému Windows.

Více informací naleznete:

Viz také

Další zdroje

64bitové programování s jazykem Visual C++

Přenos a upgraded programů