dll之我见
来源:互联网 发布:mac如何连接局域网 编辑:程序博客网 时间:2024/05/16 10:14
所谓的dll,无非是将不必用到的模块源码、资源、数据(静态的)等剥离出主程序的一种解决方案。由于工程越来越大,想把所有的东东都编译进exe,会使exe膨胀得厉害,占用内存太大,所以采用这种解决方案。
刚才讲了,为什么不把dll所有用到的数据都剥离出来呢?答案是没必要。dll总是附属于exe(或者说宿主进程)才能运行,堆栈数据完全可以采用与exe同等的空间,这样系统管理起来方便,不用再分dll堆栈和exe堆栈。
每一个进程仅仅对应dll一个静态变量实例,所有多线程访问时必须注意同步问题。
至于静态与动态调用的区别:静态调用实际上是换一种方式的静态链接库(lib)。与lib一样,exe运行之前,所有东西都编译进exe了。所以,没有编译之前如果把dll去掉了,编译肯定会报错。个人觉得动态调用(或者称显示调用)才具备动态连接库真正的工程意义:运行时加载。
- dll之我见
- 软件测试之我见
- 学校课程设计之我见
- 项目经理之我见
- Java性能之我见
- 地产泡沫之我见
- 项目经理之我见
- 软件设计之我见
- 移动开发之我见
- 国外电影之我见
- singleton之我见
- SiteMesh 之我见
- jsp template之我见
- jsp template之我见
- 游戏策划之我见
- java模式之我见
- "没有银弹"之我见
- dm分区之我见
- TZC 2414 Euclid's Game
- window xp 远程桌面支持多用户
- C++常用库(转)
- Introducing An Agile Process to an Organization
- SQL教程
- dll之我见
- 大学重要证书排名和大学生应当常去的十大网
- 小议Objective-C
- GenericsUtil
- 标准c++ 重新学习录 0
- 喜欢android请进
- ASP.NET MVC 视图概览 (C#)
- u-boot-2009.11移植到mini2440(一)
- amd64下vmware中装RHEL问题之synchronized TSCs