分享

symbian 常见错误 - Qt/Symbian/MeeGo - DevDiv移动开发社...

 xihayouyi 2011-03-02


文章分类:C++编程
KERN-EXEC 0 此错误通常出现在进程或线程使用已经销毁服务对象句柄,如调用了某个对象的Close()方法而继续使用此对象句柄
KERN-EXEC 3 此错误在好多情况下都会产生,最常见的情况通常是由于你使用了空指针,比如在对象没有创建的情况下使用其成员变量或方法
USER 11 内存越界 通常情况下是由于你没有给你的数据分配足够的缓冲区造成的。
USER 130 数组越界,如果你访问的RArray 或RPointerArray 数组下标超过了数组长度则会出现此错误
USER 29 此错误大都是因为对描述符取子串操作索引越界所致
USER 42 此错误通常是由于内存非法访问,比如访问指向无效内存的指针。我通常在调试dll的时候出现此错误,主要是没有执行Freeze由于dll修改。依赖dll主程序没有重写编译。函数访问地址出现错误
E32USER-CBase 71 通常情况下出现此错误由于CleanupStack::PushL() 和 CleanupStack::Pop()不匹配引起的,比如调用了CleanStack::PushL() 而忘记调用 CleanStack::Pop()
E32USER-CBase 63 此错误对应于E32USER-CBase 71 也是由于CleanupStack::PushL() 和 CleanupStack::Pop()不匹配引起的,你可能是过多的调用了CleanStack::Pop()
Avkon 59 在s60 2nd中构造一个视图时 不调用BaseConstructL();不会出现异常,移植到s60 3rd 如果不调用BaseConstructL();系统会提示此错误
关于错误代码 -46 第三版中调用未授权或不可用的服务通常会返回 -46的错误
错误代码 cone -8 通常是由于窗口资源没有释放引起的。确认在程序推出后清除了创建窗口的控件
CONE 44 发生此错误可能是由于你在销毁控件的时候,忘记调用 RemoveFromStack() 移除响应事件的控件。
在CEikRichTextEditor中使用RichText()→Reset()对文本清空以后执行如插入文本等操作时出现ETEXT 12的错误。
问题分析:
ETEXT 12 在panic文档中的描述为ECharPosBeyondDocument,因此是插入文本时由于光标的位置越界造成的。执行RichText()→Reset()以后文本被清空了,但是光标位置却仍然停留在原来的位置,系统并不会自动回到0位置。
解决方案:
必须调用如下两句手动的把光标位置设为0就可以了
iRichTextEditor->HandleTextChangedL();
iRichTextEditor->SetCursorPosL(0, EFalse
cone 14     Environment cannot find the specified resource in any resource file ,资源文件出错了。肯能是资源文件读得不正确。
在平时的软件开发中,其实我们常见的错误也就那么几个,这里我吧自己常见的错误列出来:
USER 10 描述符的下标超过其实际的长度。如:HBuf<10>text; text.Mid(11);
USER 11 在append或者是copy的时候,目的描述符的长度不够长。
USER 42 删除一个并不存在的对象,通常是这种情况:如你有两个指针指向了同一个对象,当你同时将这两个指针删除的时候,就会出问题。还有一种比较常见的情形是在使用一些会将所有权转移的数组(如RPointArray)的时候,比如我new
一个对象temp,然后append到RPointArray中,之后,我又将temp删除,那么在最后,释放RPointArray的时候就会出现USer42的错误。因为temp指向的对象的所有权已经转向了数组。
USER 130 使用数组时下表超过数组的最大允许的个数。
KEXE 3 控制针的情况,这个是非常常见的了,大家都知道是什么情况。其实,如果你的程序要加载一些库,如果这些库没有的话,有事也会出现空指针的错误。

E32USER-CBase 90严重错误(在调试编译时,如果你传入的指针并不是位于清理栈栈顶的指针,则会发生这种严重错误)
inline void CleanupStack::Pop(TAny* aExpectedItem)
{ CleanupStack::Check(aExpectedItem); CleanupStack::Pop(); }
注意该函数以TAny*作为参数,并将其传递给Check()。Check()函数简单地将存于清理栈栈顶的内存位置和作为预期项的传入参数进行比较。如果两者相同,则检查通过,否则发生E32USER-CBase 90严重错误。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多