iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 47156|回复: 76
打印 上一主题 下一主题

【原创】动态连接库与UG二次开发

[复制链接]
跳转到指定楼层
楼主
发表于 2004-9-26 16:28:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一开始,接课题啥都不懂,跑到这里问了一些问题,许多网友很热心,名字记不住,但心里挺感激他们。现在混到这份上了,从一穷二白,到多少懂了些东西,所以想搞一点东西出来回报社会。呵呵。。。。
UG自身的功能,我不熟悉,但首先要肯定,它们不难。就是个门槛的问题。UG二次开发的门槛算是比较高的。WIN32 API,MFC,DLL,C/C++,要想做高层次的开发,这些多少得懂一些。否则,就老老实实的呆在UG的环境里做个良民。而第一道门槛,就是动态连接库的问题。开发出来的东西,就是以DLL装到UG中的,理解DLL,很有必要。如果觉得没必要,看到这儿,兄弟您就可以打住了。
  
1。静态连接库
  
想先做个比喻来说这个事。
食堂里给1000个人做好了相同的午餐之后,是把它们逐份送到这1000个人手中,还是召集这些人到食堂里吃?
倘若采用第一种方式,那么需要考虑的问题有两个:
(1)  效率问题:送饭的人得够数,倘若派俩小伙去送,送到黄昏也不见得就送完。
(2)  意外问题:假如饭都送出去了,突然发现厨师误在饭菜中放了些亚硝酸盐。及时通知吃饭的兄弟也不是件易事,总会有许多人死翘翘。
倘若采用第二种方式,那么上面这两个问题都可以很容易的得到解决。只不过想吃午饭的个别懒人得动弹动弹走走路了。
  
言归正传:
一开始没有动态连接库,只有静态连接库(再往前了说,也没有静态连接库)。不知道各位有多少人在DOS系统上写过程序,我上学的时候用TC写过hello world,但那时没有人跟俺讲静态连接库是啥,估计和我们老师有点菜有关系,自己不努力看书更有关系。所以现在如果还有同志不懂,那么就往下看看吧。讲的不对的地方,请发悄悄话给俺,偷偷指正。
  
静态连接库:程序员可以将公用模块的代码写成一个一个子程序(函数),编译成obj文件,最后将多个obj文件连接成一个lib文件。当用户程序中需要使用这些公用模块时,就包含它们的lib文件包进去,用户在自己的程序中只需要指定所需要的函数名称,编译器会在编译时,从lib中抽出对应的子程序代码-----复制到用户程序中去。这样搞的最大的好处就是不必一遍遍重写相同功能的代码。这种连接方法就是静态连接。(回想一下,第一次在Turbo C下,printf(“Hello,World!!!”)时的情景,printf从哪来?是从lib中来的)。
  
Lib应该是一群懒惰的程序员想出来的。说白了,就是让编译器替我们copy别人写过的代码!正是因为这种copy,暴露了Lib显而易见的缺点。  
  
缺点1:试想假如你的机器上有1000个程序需要用到同一个静态连接库中的某个函数,由于静态连接库中的函数代码是复制到用户可执行文件中的,所以这1000个可执行文件中就会重复包含1000份相同的代码,硬盘空间就被浪费了。由于DOS系统是单任务系统,静态连接库的使用只表现在硬盘空间的浪费上了。而Windows系统是多任务的,假如把这1000个程序都装到内存中,那么就会装入1000份相同的代码!要是有象硬盘那么大的内存就好了!
  
缺点2:如果1000个程序需要用到同一个静态连接库中的某个函数。后来发现这个函数有问题,需要修正。改就改吧,于是就把静态连接库文件改改,编译一下。完事了么?没有!还得把这1000个程序全部重新编译一遍!
  
看到这儿,再回头看看前面的比喻,是不是有点贴切了。用食堂来比喻,还是不太对,应该用看电影来比喻!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 支持支持
沙发
 楼主| 发表于 2004-9-26 16:29:31 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
板凳
 楼主| 发表于 2004-9-26 16:29:59 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

70-2355450-dllDemo1_test.rar

37.72 KB, 阅读权限: 1, 下载次数: 320, 下载积分: 贡献 -2

地板
发表于 2004-9-26 18:46:13 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
5
发表于 2004-9-26 20:16:51 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
6
 楼主| 发表于 2004-9-26 21:32:16 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
7
 楼主| 发表于 2004-9-26 21:32:31 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
8
发表于 2004-9-27 12:35:28 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
9
发表于 2004-9-27 16:29:44 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
10
发表于 2004-9-28 10:57:41 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手板模型制作,在线3D打印服务

QQ|小黑屋|手机版|开思工具箱 CAD工具箱_CAM工具箱  

GMT+8, 2024-5-17 15:19 , Processed in 0.019393 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表