在做DWORD与 CString 比较的时候 ,需要将CString 转换成 DWORD,有几种转换方法,但是明明转换结果是一样的,可就是提示不相等,后来 _tcstoul()转换后才相等 ,记录下
CString str = lp->GetSubItem(nCol);
// MessageBox(str,m_strItem,MB_OK);
DWORD dwData = _tcstoul( str, NULL, 10 ); // 10进制
if (dwItem ==dwData)
{
//AfxMessageBox("找到找到找到找到找到找到找到找到找到找到找到找到找到");
return pCur;
}
使用_tcstoul()或者_tcstol(),它们都能把字符串转化成任意进制的长整数(如二进制、八进制、十进制或十六进制),不同点在于前者转化后的数据是无符号的(unsigned),而后者相反。看下面的例子:
CString hex = _T("FAB");
CString decimal = _T("4011");
ASSERT(_tcstoul(hex, 0, 16) == _ttoi(decimal));
转载于:https://www.cnblogs.com/BeginGame/archive/2011/08/08/2131571.html