Obecné problémy 64bitového přenesení Visual C++
Při použití Visual C++ k vytvoření aplikací pro spuštění operačního systému Windows 64-bit je třeba věnovat pozornost následujícím problémům:
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 na 32bitové operační systémy Windows v aplikaci Visual C++ verze před Visual C++ 2005.time_tNyní je 64bitové celé číslo ve výchozím nastavení.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: