前任写的软件在客户运行时出现了一个“Buffer overrun detected!”的错误,还存在内存泄漏,现在要着手解决,但不知从何下手,因为在自己的环境下不能重现此错误,调试起来感觉没有着力点,不好办啊。
不过,不管怎样,尽自己的努力去做,如果有幸能解决这个问题的话,我将如实记录解决的过程和技术。
大家如有好的办法请不吝赐教,谢谢!
------其实,问题出在DLL里面,在DLL里面申请了资源,在主程序里面来释放,这个违反了DLL开发的一个基本原则,导致问题。
还有几点编程的基本:
1.指针一定要初始化;
2.申请内存一定要做成功保护;
3.类的成员变量一定要初始化;
4.初始化工作很重要;
5.异常处理很重要;
6.各种异常情况一定要考虑全面,对非法数据要做判断并妥善处理;
7.申请的内存要记住释放,遵循谁申请谁释放的原则;
8.创建的系统资源,如句柄等也要记得释放。