Windows桌面应用程序(1-3-2-3rd) 避免多态性

新数据类型包括两种多态类型,INT_PTRLONG_PTR。在32位Windows上,INT_PTR映射到intLONG_PTR映射到long。在64位Windows上,两种类型都映射到__int64内在类型。 MIDL编译器支持这些类型用于远程过程调用,但是在分布式环境中使用它们时必须牢记一个固有的限制。请务必相应地评论您的代码。

无论平台大小如何,这些多态类型的线缆大小始终为32位。在64位Windows上解组时,运行时库符号扩展了有符号值,并为无符号值的高位字节赋值为零。在线上放置64位值时,运行时会截断高位字节。因此,只有低阶32位值可用。

仅在需要移植时使用多态类型。对于新接口,请使用MIDL内部整数类型__int32__int64,或使用指针类型或上下文句柄,以最适合传输的数据类型为准。

64位编译器支持新的多态内在__int3264。同样,这种类型的开发是为了支持移植工作,在这种情况下,透明地支持UINT_PTR类型。 (另一个内在函数__long3264将支持ULONG_PTR类型。)不要直接使用__int3264;当您需要多态类型以便移植时,请使用INT_PTR类型。


原文链接:Avoiding Polymorphism

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值