dll种类很多,可以使自定义的,也有是系统DLL 比如win32.DLL,比如打开文件之类的API就在这里。。。
所有的设备操作都是windows系统或驱动程序在执行的,你的程序不可能直接执行,当然你要告诉windows你想干什么,都需要有个桥梁,DLL是动态链接库,他其实是不能独自运行的,他没有自己的线程,所以你说是DLL完成的其实是不全对的。。。比如windows的API所在的那几个DLL文件,而且并没多大,你认为就这几个文件就能扛起一整套windows的所有功能吗???? 根本不是这样的,这windowsAPI的DLL库,只是充当一个传令兵而已。。。。
比如你要打开一个文件,是需要windows确确实实的建立一个文件对象,这必须要windows内核来完成,createfile这个API只是来获得一些相关参数,然后通知windows内核去工作,内核相关的程序,根本不在API所在的文件,WINDOWS运行时时要建立很多自己的进程的,任何功能都必须在进程里完成,单独一个DLL,什么也做不了,每个驱动程序运行都有自己的进程,和API相关的DLL,只是个和外部链接的接口,就相当于电视插销,遥控器一样,如果电视只有个壳,看上去是个电视,遥控器按钮都全乎,但就是不能用,API也是如此。。。。
是的,用VC调试的功能(先打断点)就能看到当前调试的程序加载了那些DLL,
比如我用的VC2008 Express
VC6.0启动调试后也能看到相似的(调试 -> Moudles )