关于扩展名.dll文件和扩展名.h文件的区别

来源:百度知道 编辑:UC知道 时间:2024/05/13 18:16:02
我想知道扩展名.dll文件和扩展名.h文件其用途等各方面的区别!?希望哪位高手生动形象具体的举例说明一下!!谢谢!!!

.h是C语言源程序头文件.h文件多是变量声明以及函数的声明
我们一般在.h类的头文件里面只放入函数声明,宏定义,函数原型。
而具体的实现在.cpp文件里面
比如你在<math.h>里面看到的数学函数都只有声明
具体实现在<math.cpp>里面
在编译的时候,编译器会自动加载和.h匹配的.CPP文件

DLL(动态连接库),既然是动态,那么就是有静态连接库,我想如果这么说大家会更明白:
也许有的人在DOS下编写过程序都明白这么一件事情,我写了一个程序,里面有一个功能就是把屏幕的内容翻转在转90°打印出来,那么我需要把整个程序写好放到我的所有代码中,但是如果我写另外一个程序的时候也有相通的功能,我可以 调用以前的程序这个功能吗?当然是不可以的了,所以我就要重新的写一次,如果有5个需要调用这个功能的程序,我的这个功能函数需要20K的地方,那么我的硬盘就有80K的垃圾出现(20k*5 - 20k),这仅仅是一个函数,大家是否可以数清除WINDOWS如果这样来写,需要多少函数吗?你看看所有的按钮、滚动条、Listbox\Textbox\checkBox\窗体、打印对话框、颜色对话框、打开、保存、另存 、字体对话框、文件的排列、拷贝、粘贴...... 这一切的一切是不是都需要在所 有的程序中都要写出来呢?如果真的是这个样子,那么我们的windows应该按TB来
计算了(1TB=1024GB),也许你说你的硬盘很大,那么他们还要在运行的时候占 用相同大下的内容呢!所以发展出来了,动态连接库(dll)这个感念:
动态连接,就是把这些相通的功能、函数都放到一种特殊形式的windwos可执行文件中(dll),生成一个DLL的时候,程序员需要写出,其中包含那些函数需由其他程序来访问。这个过程叫做对函数的“导出”
创建windows程序的时候,专门的连接程序对程序的对象文件进行扫描,并生成一个列表,列出那些调用的函数在那个DLL那个位置,指定各个函数所在位置的过程叫做对函数的“导入”,当程序运行的时候,一旦要求用到执行文件内部没有的函数,windows就会自动装载动态连接库,使应用程序可以访问这些函数。此时,每