被坑的够呛,做个记号
方法: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
创建更好的解决方案 阅读(4189)
评论(0) 编辑 收藏 引用 所属分类:
C++专栏