| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 717 人关注过本帖
标题:关于生成的问题
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
运行库,是语言为特定操作系统写好的公共函数仓库,用于实现系统经常调用的功能,主要以DLL文件的形式存在。旧式的程序,把所有的指令都以机器码形式储存在exe文件中,即使两个不同的程序使用同一个函数,也是分别存放于两个程序中的,亦即有两份重复的代码。当软件数量比较少时,这种形式问题不大,但软件的数量一旦庞大起来,一百个程序就有一百个复制品重复占据磁盘空间,浪费事小,更大的问题是一旦这个公用的函数需要改动,就必须把用到它的一百个程序重新编译、连接一次,如果有遗漏,软件的版本就各不相同,行为怪异(调用同样的函数有不同的现象),这是很不方便的。为了解决类似问题,就提出了DLL运行库的概念,把所有软件都用到的功能,只存放一份实物,那么软件的体积会大大减少,表现也会一致起来。典型的Windows三个核心DLL库(USER、KERNEL、GDI)就是如此。现代的开发语言,随着软件版本的变迁,函数库也会变化,用这些函数库开发的软件,都必须安装对应的运行库用以支撑。在Windows操作系统中,已经不存在把所有指令都汇集于可执行文件的情况了,简单到你要在屏幕(控制台)上显示一个字符,也是要使用系统内核运行库的,类似TC那种编译软件,即使把机器指令连在exe文件也是白连,操作系统根本不会允许这个程序使用这种指令,它会强行接管废了你那些指令(这就是当今再用TC开发软件其实是幻象的原因),如果这个程序有所反抗,操作系统马上把它踢出去。

楼主的问题,其实就是不同版本的开发语言,对应不同版本的运行库DLL,发布程序时,为预防目标机器没有相同版本的运行库,最好自己附带一套,否则这个程序会因找不到运行函数而无法执行的。

授人以渔,不授人以鱼。
2011-11-06 22:16
andysheng
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-10-2
收藏
得分:0 
回复 11楼 TonyDeng
怎么带一个库呢?
2011-11-06 22:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
把它用到的DLL一并复制过去,或者用较专业的安装生成软件创建安装程序。TC编译出来的exe是不用运行库的,只要操作系统允许它执行,就能执行。像VC++6和VS2008、VS2010等就有不同的运行库。在对方机器运行,它报告缺什么DLL就拷贝什么给它,直到能运行为止。

授人以渔,不授人以鱼。
2011-11-06 22:44
andysheng
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-10-2
收藏
得分:0 
DLL在哪找呢?
2011-11-08 12:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:15 
在system32中

授人以渔,不授人以鱼。
2011-11-08 12:34
快速回复:关于生成的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026710 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved