现在的位置: 首页 > 综合 > 正文

刻苦铭心的WCHAR

2013年10月31日 ⁄ 综合 ⁄ 共 809字 ⁄ 字号 评论关闭

       终于在经过一点时间的迷茫后,又开始走入正规,下班的时候,开始折腾起前面一直不敢拿起的symbina。

       前面一大堆的感谢就不说了,特别当然是misuo兄。

       今天调试文件类,本来昨天就写好了文件seek定位的函数,但是今天调试的时候,发现读取显示的时候,总是ccccccc,当时脑袋瓜笨,第一感觉就是读写不正确,于是乎单步进去,首先文件指针设置确实返回正确,另外也读取到了内容;然后考虑是不是传值的问题,因为S3String类这个也不是狠熟悉,不知道它的申请,释放是怎样定义的,然后又单步到这个库里面,发现调用等各方面都是正确的,经过S3String构造后,将Buffer的内容拷贝到了它的m_pStr空间中了,但是在调用console->Write执行的时候,仍然还是为ccccc。

       郁闷的要命,后来中间把S3String构造的地方换成char类型,结果异常的正常,百思不得其解。突然这时候,一位金发美女在我的脑海中飘过,触发了末梢神经,脑袋瓜灵机一动,难道是因为wchar的缘故。因为wchar是宽字节占用两个字节,那么在打印的时候,是将两个字节一起进行解析。然后突然发现我中间为了增加非偶然性因素,将文件偏移设置为3(基数),这样刚好是偏移到了wchar的半个字节中,如此以来,后面的解析将都会颠倒过来,打印的时候就极有可能为异常符号。以阿甘逃跑别人追打的速度,将万恶的3改成4,跑起来,美妙的is is a test(this is a test偏移了4字节)出现在了epoc的手机模拟器上面,哈哈,万能的主,万能的阿门,感谢您老没有抛弃咱,嘿嘿,总算告一段落。

       PS:carbide的调试界面真的是让人很不习惯,特别是内存和变量监视,相当不好用,要想熟练的开发symbian程序,真实任重道远啊。

       PS2:以后遇到这种问题的时候要仔细,不然一天又只是改了个数字。

抱歉!评论已关闭.