Obecné problémy 64bitového přenesení Visual C++
Pokud používáte Visual C++ pro vytváření aplikací pro spuštění v operačním systému Windows 64-bit, měli být vědomi následující problémy:
int a long jsou 32bitové hodnoty v operačních systémech Windows 64-bit.Pro programy, které máte v úmyslu zkompilovat pro 64bitové platformy musí být pozor, aby jim ukazatele na 32bitové proměnné.Ukazatele jsou 64bitové na 64bitové platformy a zkrátit hodnotu ukazatele, pokud přiřazujete 32bitové proměnné.
size_t, time_t, a ptrdiff_t jsou 64bitové hodnoty v operačních systémech Windows 64-bit.
time_t je hodnota 32-bit v operačních systémech Windows 32bitový ve verzi Visual C++ před Visual C++ 2005.time_t je nyní 64bitové celé číslo ve výchozím nastavení.Další informace naleznete v tématu Správa času.
Je třeba vědět, kde váš kód přebírá int hodnotu a zpracuje ji jako size_t nebo time_t hodnotu.Je možné, že číslo může být větší než 32bitové číslo a data budou zkráceny, když je předána zpět int úložiště.
%X: (hexadecimálně int Formát) printf Modifikátor nebude fungovat dle očekávání v operačním systému 64bitová verze systému Windows.Pracují pouze na první 32 bitů hodnoty, který je předán.
Použijte % I32x, chcete-chcete-li zobrazit integrální typ. 32-bit v šestnáctkovém formátu.
% I64x slouží k zobrazení integrální typ. 64-bit v šestnáctkovém formátu.
%P (hexadecimálně formát pro ukazatele) bude fungovat dle očekávání v operačním systému 64bitová verze systému Windows.
Další informace naleznete v tématu: