|
Question 常用编程技巧与实践 - 让你的程序更加稳定并且和下一代Palm OS产品保持更好的兼容性(Chinese) Answer 以下是一些非常好的编程技巧和实践,可以让你的代码更加稳定并且和下一代Palm OS产品保持更好的兼容性。 在你的代码中添加许多ErrNonFatalDisplayIf()的调用, 这是一种可以让你的代码变得更加稳定的常用的方法。这样调试编译会检查可能出现的错误。通过这种办法可以捕获很多代码错误,而且这些“额外的”调用不会给你将要发布的应用程序带来任何影响。你可以在发行版本中通过调用ErrFatalDisplayIf()来保留一些重要的错误检查。 以下是其它一些特殊的需要检查的项目: 读和写零(NULL)地址(或者低地址内存) 记住检查MemSet、MemMove等调用,确保指针不为零。(如果你能进行比这更好的验证,那更好。)同样请验证你的代码中从某些结构或者API调用中获得的指针不是零(NULL)。在调试编译中,可以考虑用预定义(#define)来代替MemMove(以及相似的函数)来检查参数。 分配零长度的内存对象 分配零字节的缓冲区,或者把一个缓冲区的大小调整为零字节都是不正确的。Palm OS2.0和之前的版本允许这样做,但是将来的Palm OS版本可能不允许零长度的内存对象。 对屏幕做一些假设 屏幕缓冲区的位置、屏幕的大小和每一比特所对应的像素点数都不是固定不变的,很可能发生变化。不要切入(hack)窗口和绘制函数。如果你想要切入(hack)那些和API有关的硬件,请先保存状态并在退出时把系统恢复到保存的状态。 直接访问全局变量或者硬件 全局变量和它们的位置也会发生变化; 如果你的应用程序是要运行在任何平台而不仅仅只是经过验证的版本的Palm OS上的话,请使用开发文档中的API函数或者退出你的应用程序。将来的设备可能运行于另外的处理器之上,而不是现在的处理器。<、li> 不要让堆栈溢出 定义大量的(或者极大量的)局部变量会导致很难调试的内存堆崩溃。堆栈大小只有大约2k;要节约使用基于堆栈的变量。 内置应用程序会改变 内置应用程序参数(和数据)的格式和大小也会随着变化。在你的代码中采用防御性措施,并且考虑不要让你的应用程序运行在没有经过测试的操作系统之上。 | |
| Palm Powered设备上的增强型音频 编写Palm J2ME红外线“聊天”程序 PALM开发教程-… PALM开发教程-… PALM开发教程-… PALM开发教程-… PALM开发教程-… PALM开发教程-… Palm OS上发送和&… Palm OS上如何利&… |
| 文章评论 | |||