首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

比较奇怪的有关问题,大侠

2013-01-07 
比较奇怪的问题,请教各位大侠如下代码,执行就正确://for testAnsiString str 0xEEEEEEUINT32 udwDat

比较奇怪的问题,请教各位大侠
如下代码,执行就正确:
        //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

热点排行