随笔-60  评论-98  文章-0  trackbacks-0
被坑的够呛,做个记号

方法:1、2系转载
方法3系原创

如果你的数据不会大于0x7fff ffff,可以直接用StrToInt,安全点的方法是StrToIntDef

    // 超出了int的最大表达范围,禁止用int中转
    std::string str("2147483649");
    DWORD num = atoi(str.c_str()); // way - 1,安全性不好
    std::stringstream sstr;
    sstr<<str;
    sstr>>num;                     // way - 2,安全性不好
    sstr.clear();

方法3:

/*******************************************************************************
   字符串转成DWORD,模仿StrToIntDef()其中defalult = 0;
*******************************************************************************/
DWORD StrToDWORDDef(String sDigStr, DWORD dwDef = 0)
{
    return (DWORD) StrToInt64Def(sDigStr, dwDef);  //安全性好,浪费几个始终周期和4字节内存
}
posted on 2008-01-10 21:10 创建更好的解决方案 阅读(4181) 评论(0)  编辑 收藏 引用 所属分类: C++专栏

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理