CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

修复扩展和截断错误的策略

2022-12-31 05:13| 发布者: admin| 查看: 237| 评论: 0|来自: AutoCAD

下面是处理类型扩展和截断错误的一些策略。

  • 使用指针大小(64 位)的变量以避免在分配期间扩展或截断
  • 如果确定这样做是安全的,请使用硬强制转换将 64 位值(例如 32 位)截断为 32 位,如下所示:size_t
    std::vector<int> myVec;
    long nVecSize = (long)myVec.size(); // no warning
  • 当您确定这样做是安全的时,请将 64 位传入值替换为 32 位值,如下所示:
    extern long myGetSize(const std::vector<int> & ); // applies the truncation hard cast internally
    std::vector<int> myVec;
    long nVecSize = myGetSize(myVec );
  • 暂时禁用编译器警告,然后重新启用它,如下所示:
    std::vector<int> myVec;
    // we know size is < 4G, so is okay to ignore warning
    #pragma warning (push)
    #pragma warning (disable: 4267)
    long nVecSize = myGetSize(myVec);
    #pragma warning (pop)

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 12:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部