| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2953 人关注过本帖
标题:请教 关于动态链接库的问题
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 59楼 TonyDeng
怎么解!

[ 本帖最后由 有容就大 于 2012-5-20 13:15 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-05-20 12:48
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 60楼 hellovfp
下了 谢谢先

梅尚程荀
马谭杨奚







                                                       
2012-05-20 12:49
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
编译型语言是把程序的源代码全部转换为二进制直接可执行机器码,后者是计算机能够直接识别的指令(具有非间接性的最高机器执行效率,但并非你的程序的效率评估,写得差的程序效率同样不会高),属于终极代码,这种程序编译为.exe(以前有更直接的.com现在很少见了)后,就脱离了源代码,你直接把.exe文件拿到机器上就可以运行,所有.cpp和.obj、.lib等等,都是不需要的。这种程序会把你上面所说的那三句话原样刻印在.exe上,因为你的源代码指令本身就是那样重复了三次。

解释型语言是对着程序源代码一行一行执行的,每执行一行,都需要一个叫解释程序的软件对源代码即时编译,即使你源代码中使用的for()循环次数是1000次,每一次循环都需要解释软件反复编译再执行,时间很大部分消耗在解释指令上(但写得好的解释型程序有时比写得糟糕的编译型程序效率反高,现实中这种例子不罕见),而且这种程序的源代码相当于公开,较难保密(与此相对,编译型程序保密性能很好,所以你没有办法从.lib中看到标准库的源代码,不知道那些函数是如何实现的)。旧式BASIC(非)和JavaScript就是此类语言的典型例子。

现代的Java和.NET程序,是介于这两种之间的机制,属于“编译为伪代码”的方式,伪代码是专供运行库“看”的(人用某种反向工程手段也可以看到“源代码”,但可以用扰乱器令反向工程失效)。VS中的C++/CLR、C#、等,都是这种方式,这几种语言编译之后,在.exe级别上是完全一样的,没有区别,但VS保留的C/C++仍然是传统的方式(你们现在所学的主要是后者)。

[ 本帖最后由 TonyDeng 于 2012-5-20 13:08 编辑 ]

授人以渔,不授人以鱼。
2012-05-20 13:05
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 63楼 TonyDeng
再去看了下 问题的重点可能在编译和解释的过程上

编译是把I love you 直接编译成机器能看懂的文件 Obj文件(目标程序)可以脱离其语言环境独立执行
解释是把I love you 通过一个翻译器 (商家自己编写)翻译成一个中间码 机器不能立即识别 还必需通过解释器来解释成机器能看懂的二进制码

现在的问题是编译器 按理说也是商家自己写的 那么 每一个语言就需要一个编译器
如果是解释型的那么 还需要个翻译器 不通的翻译器翻译的中间码是一样的吗 解释器应该也会不同 他能识别的中间码是固定的吗 也就是说 翻译器和解释器是成套提供的吗?


梅尚程荀
马谭杨奚







                                                       
2012-05-20 13:15
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
最近可能知识太多了,有容兄有点接收不过来了。。。
还是暂停一下,理一下思路,有容兄可以写一些个人日志,记录一下最近学习到哪些知识点及个人的理解。。
然后让Tong老大看看你哪些地方理解还有偏差。
C++中最重要的一本书<The C++ Programing>,这本相信你也下载过,不过书中第一章你明显没有看过。。
上面关于头文件的解释,和头文件应该出现那些语句,不应该出现那些语句写得清清楚楚。
静下心来,读有名的著着,不能左一头右一头的去搞。最后总是来补基础,这样下来,谈何灵活应用?

我们都在路上。。。。。
2012-05-20 13:16
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 65楼 hellovfp
很遗憾 我看过的 就是知道了有这么两个东西 但要我说差别我 说不出来 毕竟我没用过解释型语言 BASIC 没学的直接C。现在T版指点下我在去看网上说的 明白了许多 就像凸透镜只有在阳光下才能很快点然纸片一样。

梅尚程荀
马谭杨奚







                                                       
2012-05-20 13:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 64楼 有容就大
等你两种类型的语言都学过就知道了,最好各懂一门,很多东西是互补的,C#现在试图把两种模式的优势综合在一起。

授人以渔,不授人以鱼。
2012-05-20 13:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
Hellovfp做的那个代码,怎么“象”是Elephant呢?

授人以渔,不授人以鱼。
2012-05-21 13:32
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 68楼 TonyDeng
会不会是偶英文搞错了?大象呀。。。应该是宰相吧?E文不好的问题。。。嘿嘿

[ 本帖最后由 hellovfp 于 2012-5-21 13:39 编辑 ]

我们都在路上。。。。。
2012-05-21 13:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
象棋中的“象”和“相”是等同的,是丞相的意思,不是动物。

授人以渔,不授人以鱼。
2012-05-21 13:40
快速回复:请教 关于动态链接库的问题
数据加载中...
 
   



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

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