新数据类型包括两种多态类型,INT_PTR和LONG_PTR。在32位Windows上,INT_PTR映射到int,LONG_PTR映射到long。在64位Windows上,两种类型都映射到__int64内在类型。 MIDL编译器支持这些类型用于远程过程调用,但是在分布式环境中使用它们时必须牢记一个固有的限制。请务必相应地评论您的代码。
无论平台大小如何,这些多态类型的线缆大小始终为32位。在64位Windows上解组时,运行时库符号扩展了有符号值,并为无符号值的高位字节赋值为零。在线上放置64位值时,运行时会截断高位字节。因此,只有低阶32位值可用。
仅在需要移植时使用多态类型。对于新接口,请使用MIDL内部整数类型__int32和__int64,或使用指针类型或上下文句柄,以最适合传输的数据类型为准。
64位编译器支持新的多态内在__int3264。同样,这种类型的开发是为了支持移植工作,在这种情况下,透明地支持UINT_PTR类型。 (另一个内在函数__long3264将支持ULONG_PTR类型。)不要直接使用__int3264;当您需要多态类型以便移植时,请使用INT_PTR类型。