这段时间在公司做一个activex控件,在开发过程中走了很多弯路,特此记录。
1.对于多线程:尽量对线程对象进行封装,不想自己封装可以直接使用boost::thread,方便很多,也好管理。
2.对于程序的设计,基本要考虑以下几点:
- 配置文件,整个程序的核心对象的初始化应依赖于配置文件,有专门的配置文件管理对象,配置文件的值在内存中有可供修改的拷贝
- 对于对象设计,一定要明了,对象包含状态,动作,以及与其它对象之间的关系
- 在分配内存时,一定要平级分配,平级释放。不要在函数级别上分配,而在全局级别上释放
- 当初始化需要的参数超过了2个时,可以考虑,是不是将初始化所需的参数封装到一个对象中进行管理
对于多线程程序一定要注意,对线程对象进行封装后,如果线程未启动,则线程对象一定不能销毁,不然会报pure virtual function call错误。