我正在尝试在 MFC 项目中进行从十六进制字符串到整数的转换。代码是这样的:
CString sMask = "0xFFFFFFE0";
char* pMaskBuffer = sMask.GetBuffer(sMask.GetLength());
sMask.ReleaseBuffer();
char * p = NULL;
long iMask = strtol(pMaskBuffer, &p, 16);
当 sMask 变量很小时,代码工作正常。但是 4 字节掩码正在生成奇怪的值。我得到的不是 4294967264 ,而是 2147483647。如何克服这个问题。请帮忙。