C++与Symbian编程技巧:错误处理与调试方法

需积分: 1 0 下载量 185 浏览量 更新于2024-07-31 收藏 646KB PPTX 举报
"C++和Symbian技巧涵盖了C++编程在Symbian操作系统中的注意事项、常见错误及其解决方法,还包括了一些调试技巧和Symbian系统特有的问题。这些技巧对于在Symbian平台上进行C++开发的工程师来说是至关重要的。" 在C++编程中,尤其是在Symbian操作系统环境下,开发者可能会遇到各种编译错误。以下是几个常见的问题及解决方案: 1. **未定义标识符‘xxx‘**:这通常是因为没有包含相应的头文件。确保在源文件中正确地包含了需要的头文件,以引入所需的标识符。 2. **未定义符号:xxx**:这可能是由于缺失了对应的LIB文件。检查项目配置,确保链接器能够找到所有必要的库文件。 3. **LINK错误LNK1168:无法打开xxx.exe进行写入**:这通常是因为xxx.exe已经在运行或者被其他进程占用。关闭任何可能使用该文件的程序,然后再尝试编译。 4. **错误LNK2001:未解析的外部符号“public: virtual __thiscall C……::~C……(void)”**:这意味着在链接阶段找不到某个函数或变量的实现。检查库是否正确包含,cpp文件中是否有函数实现,编译和链接设置是否正确。 5. **错误C2018:未知字符'0xa3'**:这可能是因为代码中包含了非ASCII字符。确保代码只使用标准的ASCII字符集。 6. **致命错误C1010:在查找预编译头文件指令时遇到了文件尾**:这表明在预编译头文件的位置出现了问题,检查代码是否完整,是否正确包含了预编译头文件。 7. **致命错误C1083:无法打开包含文件**:检查引用的文件路径是否正确,文件是否存在于指定位置。 8. **注意:析构函数或类特定的operator delete都不会被调用**:在Symbian下,动态数组使用ResetAndDestroy()可能导致这个问题。尝试重新编译GCCE版本可能有助于解决这个问题。 9. **函数调用‘xxxxx’不匹配**:确保函数调用时传递的参数与函数原型相匹配。 在调试C++代码时,以下是一些常用的技巧: 1. **DEBUG模式**:在调试过程中,DEBUG模式可以帮助查看函数调用顺序、堆栈使用情况以及变量的值,这对于定位问题非常有帮助。 2. **日志记录**:在Symbian手机上,通过打印日志可以追踪程序运行过程,特别是在处理复杂的循环体、程序异常退出或死锁等问题时尤其有用。 3. **调试标记**:通过预处理#define定义调试标记,可以在代码中用#ifdef和#endif来包裹调试代码,这样在非调试模式下这些代码将被忽略,从而在不影响发布版本性能的同时,方便调试过程。 掌握这些C++和Symbian的编程技巧,能够显著提高开发者在Symbian平台上的效率,降低错误率,并提升软件质量。对于Symbian系统的开发者来说,了解并熟练运用这些知识是不可或缺的。