VC中dll与文件包含的实际区别是什么?

1、在file.cpp里自定义一个函数func(),然后在appli.cpp里通过文件包含include".....\file.cpp"来调用函数func();2、构建一... 1、在file.cpp里自定义一个函数func(),然后在appli.cpp里通过文件包含include".....\file.cpp"来调用函数func();
2、构建一个file.dll动态链接库,里面有一个自定义函数func(),然后在appli.cpp里链接到这个dll,调用里面的函数func()。
这两种方法有什么实质上的区别吗?我是说,最后的效果有什么不同(原理当然不同)?比方说,二者编程上的难度,程序运行的速度,等等之类的。
展开
 我来答
L_o_o_n_i_e
2010-09-05 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5255万
展开全部
方法1,通过 include 把函数func()的源程序 包含进主程序,编译成 .exe 程序。
这些在编译过程中完成。所以,运行时只需要 运行.exe 一个程序。
程序安装简单,运行简单,速度快。

方法2,编译成 .dll 和 .exe 两个程序。运行时既需要.exe ,还需要 .dll
程序需要安装。运行 .exe,系统检查 .dll 是否已运行,若没有,就要启动.dll。
所以 运行复杂,速度慢。

编程上,当然方法2 难,复杂。

所以通常只有多程序需要共用的东西才放入.dll,例如 MFC 里的东西,许多视窗可以共用已运行的一个 或若干个 .dll,而 .exe 里不含 这些 共用的东西,使得 .exe 文件较小。
安凌血月1g
2010-09-05
知道答主
回答量:44
采纳率:0%
帮助的人:23.7万
展开全部
我觉得有两点:第一可以很好的保护你的代码安全,因为这样别人看不到你的核心代码。第二可以减小.exe文件的大小,而且是动态的加载,当程序运行到需要此函数时才把.dll加载到内存中去,这样程序运行时就要省很多内存,运行当然会快。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wwwgmc
2010-09-05 · TA获得超过321个赞
知道小有建树答主
回答量:247
采纳率:0%
帮助的人:171万
展开全部
没有区别。
好像全局键盘钩子,必须用dll
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
warmwormn
2010-09-06 · TA获得超过737个赞
知道小有建树答主
回答量:1694
采纳率:0%
帮助的人:1343万
展开全部
DLL本身就是协同开发的产物
对一个人的开发来说,关系不是太大
但对于一个小组来说,由于执行文件只有一个
大家分工时定义好接口,各自完成自己的DLL
自己完成调试,最后再拼装在一起

此外DLL封装后,可以让其它人的程序也可以方便调用
自己的函数功能,同时也避免了源代码的泄漏
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式