话说VS2005中VC工程的优化

做优化,最起码考虑的是文件大小,代码效率,以及稳定性.

 

基本上VC6里面的优化方法都可以适用于VC2005,但我就碰钉子了~只好还是用VC6.

 

我是编写的DLL,普通的优化方式也都可以,但是效果不大,最能减小体积的是指定入口点,可是在VS2005里面貌似有点小难度.

 

首先,指定了入口点,编译,提示找找不到符号_main,拜托,我写的是WIN32程序,不是控制台啊,为啥会用这个函数呢?天知道.

 

其次,使用了#program comment(lib, "msvcrt.lib")就不提示找不到_main了,但是新的问题又来了,他导入的链接库是MSVCR80.DLL,这个东西一般电脑上可是没有的,我总不能打包的时候自带吧,那也有点太大了,真搞不明白,为啥.

 

最后,还是用的VC6编译,幸好代码不用动,否则我又要痛苦了.

 

VS2005优化的大小是12KB(使用MSVCR80.DLL),VC6优化出来的是24KB,不过也凑合,最重要的还是兼容性和稳定性.

 

VC6不愧是一代经典,写出来的东西支持NT以上所有系统.


说点别的,托管代码与非托管代码.

 

指的就是FrameWork.NET了,这个东西对于界面的开发我感觉还是不错的,不过起初我对这个是很讨厌,因为只要用到了这个东西,程序运行必须要具有.NET运行库,那个东西可是好几十兆的,我就怕这个,所以一直不用它.

 

这个托管应该是代替系统管理程序的内存(堆/栈),好处就是你不用再担心内存泄露了,只要是长时间不用的内存,它会自动帮你回收掉,提高系统的性能,其次是提供一些更高级的操作,使用的是面向对象,编码的效率也很高,原来写几十行的代码,面向对象一句话就可以搞定.

 

其实我最关心的还是内存泄露,编写托管程序的时候就可以省心了.

 

至于用不用托管代码,完全取决于你程序的用途,并不是说托管代码不好,也不是说托管代码好,各有利弊而已.

 

托管代码的初次执行效率很低,低的吓人,但是以后就会越来越快了,非托管代码的效率一直是很高,当然前提是你的代码没有BUG.总体来说,非托管代码的效率要高.

 

一般来说系统程序都是非托管代码,因为这些程序是和系统紧密结合的,比如杀毒软件,浏览器等,还有,VS的IDE也是非托管的哦.

 

其他类型的程序托不托就无所谓了,想用就用,不想用就不用,不过大部分都是用的.比如说商业软件,客户都愿意掏钱买你的软件了,还会在乎装一个.NET运行库吗?而且使用.NET的开发速度是很快的.


面向过程与面向对象.

 

这个概念对于喜欢编程的人不陌生,一个是从计算机的角度去编码,一个是从人类的角度去编码.

 

我个人是倾向于面向过程,为什么呢?因为即使是面向对象,那也是把各种面向过程的代码封装起来给你用而已.

 

面向对象的开发效率比较高,因为你完全不必考虑过程,只需要关心结果,你说这样写代码能不快吗?

 

但是,往往通过面向对象学习出来的人,学不到什么东西,真的,你只会知道这样做,而并不知道为什么要这样做,它的内部代码你是不知道的.

 

所以我大部分都是在做面向过程的开发,能够学到很多东西,各种操作细节我都可以去控制,这是面向对象所做不到的.

 

而且随着我的积累,会形成一个函数库,以后的开发也会越来越快.

 

最后,面向对象能做到的,面向过程一定能做到,但是反过来就不成立了......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值