A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张俊双 中级黑马   /  2012-10-16 15:48  /  1916 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有什么区别,他们是怎么产生出来的

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

4 个回复

正序浏览
本帖最后由 刘俊红 于 2012-10-17 14:04 编辑

一句话:*.exe 拿来做入口,它可能需要使用其他的*.dll做支撑。反过来就不行。

在.NET里,*.exe 和 *.dll 都是程序集,是程序集不同的输出类型而已(还有另外一种模块类型netmodule)。

两者本质上是相同的,*.exe 是可执行的原因是它比 *.dll 多了个程序入口(C#中是Main()方法)。

除了程序入口外,*.exe 和 *.dll 完全相同,都可以被调用,*.exe 也可以被调用啊,不要以为它不叫类库就不能调用了。

*.exe 可以编译为 *.dll ,而 *.dll 不能被编译为 *exe 。(废话,*.dll 少了入口嘛)。

怎样生成?
方法1:在Visual Studio里设置生成类型,右键项目—>属性—>应用程序—>输出类型。(我看没有module选择。)
方法2:在控制台下,可以用 /t:类型 选项来生成不同的类型。见下图。






评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
dll 存储一些内部函数的一个库,调用的时候是在运行时刻导入这些函数,所以叫动态链接库
也可以导出lib
exe 则是在ms平台上的win32的可执行程序

dll貌似用vs中mfc擴展可以寫

生成的話vs會幫你,至於再深層次的,sorry.....我不懂

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
.exe是可执行文件,当你双击的时候可以打开的文件。dll是为动态链接库,是一个包含可由多个程序同时使用的代码和数据的库。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
exe是可执行文件,双击就可以运行,而dll是动态链接库文件,不能直接双击运行,dll大多数的时候是保存程序exe中调用的函数、资源等额外的东西的。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马