VC编程建议

本文提供了MFC编程中的一些最佳实践建议,包括避免使用全局函数和变量、正确处理线程和界面更新、合理分配内存、关注运行效率及避免在界面处理函数中执行长时间操作等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、不要使用全局函数,应该代之以类的静态函数。

 

2、不要使用全局变量,如果必须使用,请定义一个全局结构,把这个全局变量放到结构里去。更好的方法是定义一个全局的单例。

 

3、MFC的界面组件没有考虑线程安全,因此在工作线程里不要直接操作操作界面组件。

如果需要更新界面,有两种方法

a、用mutex保护;

b、给界面发消息,在界面线程里更新。

推荐第二种。

 

4、不要随意开线程。要确保CreateThread返回的线程句柄在合适的时机CloseHandle。

 

5、尽量使用栈上的变量,如果使用了堆上变量,请确保它能在合适的时机得到释放。

因为栈上的变量不需要考虑释放内存,所以不用花大功夫考虑生命期。

不过现在的PC,动辄上G内存,要是有内存泄露,一时半会儿也不会死掉。

假设电脑有1G内存,我们的程序每秒钟泄露1k,那么可以差不多支持1百万秒,折合大概12天。

 

6、释放对象数组,要使用delete[]。

如果使用delete,虽然内存都会释放,但是只有第一个对象的析构函数被调用,其他对象都是直接被灭。

 

7、不要在意运行效率,要相信cpu厂商的实力 :)。作为软件人员,请记住开发效率和维护效率更重要。

 

8、不要在界面的消息处理函数里做长时间操作。

在消息处理函数里不要超过0.1秒,否则用户就会感觉到界面僵硬。

如果需要长时间操作,两种办法:

a、将长时间操作拆为多个步骤,用timer处理;

b、开工作线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值