将CString转换为unsigned long

时间:2011-02-15 13:57:44

标签: c++

我正在尝试将字符串转换为unsigned long。这是代码

lCardNum = wcstoul(sCardNo.GetBuffer(sCardNo.GetLength()), NULL,0);

我的sCardNo(CString)值为4294967359。 为什么我将lCardNum(unsigned long)作为4294967295

1 个答案:

答案 0 :(得分:7)

假设你的无符号长整数是32位宽,那么你就会溢出它。 0xFFFFFFFF是4294967295.你想要的4294967359是0x10000003F,,它需要33位。

在Windows框中转到unsigned long long__int64,查找_wcstoui64