Cod*_*_DJ 2 c++ mfc hex strtol
我正在尝试在 MFC 项目中进行从十六进制字符串到整数的转换。代码是这样的:
CString sMask = "0xFFFFFFE0";
char* pMaskBuffer = sMask.GetBuffer(sMask.GetLength());
sMask.ReleaseBuffer();
char * p = NULL;
long iMask = strtol(pMaskBuffer, &p, 16);
Run Code Online (Sandbox Code Playgroud)
当 sMask 变量很小时,代码运行良好。但是 4 字节掩码生成了奇怪的值。而不是 4294967264 ,我得到 2147483647. 如何克服这个。请帮忙。
小智 5
那是因为 strtol 返回 long use this
unsigned long iMask = strtoul(pMaskBuffer, &p, 16);
Run Code Online (Sandbox Code Playgroud)