Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Nowe typy danych obejmują dwa typy polimorficzne, INT_PTR i LONG_PTR. W 32-bitowym systemie Windows INT_PTR mapuje na int, a LONG_PTR mapuje na long. W 64-bitowym systemie Windows oba typy są mapowane na typ wbudowany __int64. Kompilator MIDL obsługuje te typy dla zdalnych wywołań procedur, ale istnieje nieodłączne ograniczenie, które należy wziąć pod uwagę podczas korzystania z nich w środowisku rozproszonym. Pamiętaj, aby odpowiednio skomentować kod.
Niezależnie od rozmiaru platformy rozmiar przewodu tych typów polimorficznych jest zawsze 32-bitowy. W przypadku 64-bitowego systemu Windows znak biblioteki czasu wykonywania rozszerza podpisane wartości i przypisuje zero do bajtów o wysokiej kolejności dla niepodpisanej wartości. W przypadku umieszczenia wartości 64-bitowej na przewodzie czas wykonywania obcina bajty o wysokiej kolejności. W związku z tym można używać tylko wartości 32-bitowych o niskiej kolejności.
Używaj typów polimorficznych tylko wtedy, gdy jest to konieczne do przeniesienia. W przypadku nowych interfejsów użyj wewnętrznych typów liczb całkowitych MIDL __int32 i __int64lub użyj typu wskaźnika lub uchwytu kontekstu, w zależności od tego, co najlepiej pasuje do rodzaju przesyłanych danych.
Kompilator 64-bitowy obsługuje nową polimorficzną wewnętrzną __int3264. Ten typ został opracowany, aby wspierać działania związane z przenoszeniem, w tym przypadku w celu przezroczystej obsługi typów UINT_PTR. (Inny element wewnętrzny, __long3264, będzie obsługiwać typ ULONG_PTR). Nie używaj __int3264 bezpośrednio; użyj typu INT_PTR, jeśli potrzebujesz typu polimorficznego ze względów przenoszenia.