比较奇怪的问题,请教各位大侠
如下代码,执行就正确:
//for test
AnsiString str = "0xEEEEEE";
UINT32 udwDat = strtoul(str.c_str(),NULL,16);
此时udwDat能得到正确值:0xEEEEEE
可是如下代码就错误:
//for test
String str = "0xEEEEEE";
UINT32 udwDat = wcstoul(str.c_str(),NULL,16);
此时udwDat得到的是0xFFFFFFFF。看了strtoul()和wcstoul()函数的说明,差别只是一个是const char*,一个是const wchar *,其内部动作应该一致的。但为何第一个例子就能正确转换,第二个就无法正确转换呢?哪位高人给解释一下,多谢。
[解决办法]
用你的代码在CB2010上测试了一下,两者都是正确的,值都是0xEEEEEE