什么是动态链接库dll(什么是DLL (动态连接库))

什么是DLL(动态链接库)DLL(动态链接库)?既然是动态的,就有静态的链接库。我想如果你这么说的话,你会更清楚:也许有些在DOS下写过程序的人明白这样一件事。我写了一个程序,有一个把屏幕上的内容转过90再打印出来的功能。然后我需要写整个程序,把它放在我所有的代码里。但是如果我写另一个程序,我会写另一个程序。当然做不到,只好再写一遍。如果有五个程序需要调用这个函数,我的函数需要20K,那么我的硬盘就会有80K的垃圾(20k*5-20k)。这只是一个函数。如果你这样写,你能计算出需要多少个函数来清空窗口吗?看看所有的按钮,滚动条,Listbox\Textbox\checkBox\ forms,打印对话框,颜色对话框,打开,保存,另存为,字体对话框,排列,复制粘贴文件.这些东西都需要在所有程序里写吗?如果真的是这样,那么我们的windows应该是以TB (1TB=1024GB)计算的。可能你说你的硬盘很大,所以他们运行的时候还是要占用等量的内容!所以就发展出了动态链接库(dll)的概念:动态链接就是把这些相互链接的函数和函数放到一个特殊形式的windwos可执行文件(dll)中。在生成一个DLL时,程序员需要编写它,包括那些需要被其他程序访问的函数。这个过程被称为函数的“导出”。当创建一个windows程序时,一个特殊的链接器扫描程序的目标文件,并生成一个DLL中调用的函数的列表。指定每个函数位置的过程称为函数的“导入”。当程序运行时,一旦需要执行文件中没有的函数,windows会自动加载动态链接库,以便应用程序可以访问这些函数。此时,每个函数的地址都会被解析,并以动态的方式连接到程序上——这就是“动态连接”这个术语的由来。还有一个好处就是当你更新你这个函数的版本和功能时,静态连接需要多少工作量(假设windwos有几千个这样的函数,有100多个程序可以使用,静态连接需要10万次更新,动态连接只需要1000次),这样就节省了内存空间。动态链接库不一定是dll的扩展,也可以是ocx、vbx、exe、drv等。你可以发现在调用WIN32 api的时候,会有一个说明,说是来自那个DLL之类的宿主文件。现在我在这里说一些标准dll的用法:看下面的API声明:公共声明函数getwindowsdirectory lib ' kernel32 '别名' getwindowsdirectorya '(ByVal LP buffer As string,ByVal nSize As Long)你见过kernel 32多久?其实这是kernel32.dll的名字。你可以在你的硬盘上找到他,也就是说GetWindowsDirectory这个函数在kernel32.dll。他的别名是GetWindowsDirectoryA,()是他的参数。有两个字符,一个是长整数,返回值也是长整数。Lpbuffer-string,指定用于加载Windows目录名的字符串缓冲区。除非是根目录,否则目录中不会有停止“\”字符nsize-Long,lpBuffer字符串的最大长度,返回值为Long,是复制到lpBuffer的字符串的长度。如果lpBuffer不够大,无法容纳整个字符串,将返回所需长度的lpBuffer。零表示失败。API声明就是这么回事!DLL描述KERNEL32。DLL-低级内核函数。它可以用于内存管理、任务管理、资源控制等。用户32。与窗口管理相关的函数。

消息、菜单、光标、定时器、通信和大多数其他不切实际的功能都可以在GDI32中找到。图形设备接口库。与设备输出相关的功能:绘图、显示场景、图元文件、坐标及其字体的大部分功能都可以在这个梨中找到。Comdlg32.dll \ LZ32.dll \ version.dll \-这些都是提供一些附加功能的库,包括对通用对话框、文件压缩和版本控制的支持。COMCTL32。一个新的窗口控件集合,如TreeView和RichTextBox等。一开始这个好像是给win95做的。但是现在,我们也用NT-Netapi32.dll旗下的Mapi32.dll,提供一套邮箱,ODBC32.dll,提供一套访问和控制网络的功能(不用我多说)。WINMM.DLL,ODBC函数的dll之一(这不是WINDOWS的MM),是一组多媒体控制访问函数。windows api发展变化之快,是我们任何人都赶不上的速度。幸运的是,我们不必掌握所有的Windows API,只需掌握需要经常使用的Windows API及其规则结构和基本感受即可。这个亮点很重要。Dll文件知识1。DLL文件知识。DLL是DynamicLinkLibrary的缩写,意思是动态链接库。在Windows中,很多应用程序并不是完整的可执行文件,它们被分成一些相对独立的动态链接库,即DLL文件,放在系统中。当我们执行一个程序时,会调用相应的DLL文件。一个应用程序可以有多个DLL文件,一个DLL文件可以由几个应用程序共享。这种DLL文件称为共享DLL文件。DLL文件通常存储在C:WindowsSystem目录中。第二,修改DLL文件的具体应用在系统的组策略和注册表中。我们可以修改一些关键值来优化我们的系统,加强操作系统的安全性。但对于限制下载、禁止删除文件等功能,我们无法通过上述操作来实现,只能通过修改系统DLL文件来实现。目前通过修改系统的DLL文件,可以实现禁止文件删除、IE下载、IE另存为、文件打开等功能。3.系统中一些DLL文件的功能。Browselc.dllIE需要调用的库文件的DLL结构原型是it 2。Shdoclc.dll系统窗口和设置,如删除文件,重命名3,Shell32.dll系统窗口和设置等。如删除文件、重命名4、下载并提示Cryptui.dllIEIE控件的对话框程序4、修改DLL文件的方法1、下载DLL文件修改工具EXESCOPE6.0-6.3或6.4工具2、获取Browselc.dll、Shdoclc.dll、Shell32.dll、Cryptui.dll的几个链接文件。在寻找这些文件的时候,最好把本机的其他机器的硬盘勾上,然后用本机的操作系统启动并复制这些文件。3.修改DLL文件时,打开键值,在右边的对话框中禁用要修改的键值。不要为了以后恢复而删除(如图)。5.修改DLL文件的秘籍。1.禁止下载的修改方法:打开Shdoclc.dll修改资源-对话框-4416,禁用键值4416。2.禁止将网页添加到收藏夹。打开“Shdoclc.dll修改资源”对话框-21400,并禁用该键值。3.禁止加载恶意网页和修改Cryptui.dll文件。需要同时修改五个地方才能完全禁止资源-对话框-130资源-对话框-230资源-对话框-4101资源-对话框-4104资源-对话框-4107。每个对话框中相应的键值都将被修改。4.禁止系统删除文件和修改Shell32.dll。这个文件需要在五个地方修改,才能禁止系统删除文件。

资源-对话框-1011资源-对话框-1012资源-对话框-1013资源-对话框-1021资源-对话框-1022只需禁用以上五个地址的键值!5.禁止更改文件名和修改shell32.dll。有两个地方需要修改资源-对话框-1018资源-对话框-1019。把上面两个地方对应的键值改成disabled就行了!6.禁止运行菜单,修改shell32.dll,将resource-dialog-1018键值设置为disabled。7.禁止移动系统文件来修改shell32.dll。四个本地资源-对话框-1014资源-对话框-1015资源-对话框-1016资源-对话框-10178需要修改。禁止将目标保存为。要修改Shdoclc.dll文件,需要修改三个本地资源-菜单-250。键值打开后,右键菜单里有删除。在资源-菜单-24641-2268中,有很多键值,请一一删除。8.禁止通过自定义文件夹选项来修改Shell32.dll文件。以下四个本地资源-菜单-215-28719资源-菜单-216-28719资源-菜单-217-28719资源-菜单-216-2877需要修改。9.IE文件夹选项被禁止。修改Browselc.dll文件,需要修改三个键值资源-菜单-263(请在此删除几个)-41251(删除)资源-菜单-266(请删除其他几个)-41329(删除)资源-菜单-268。10.要禁止98文件共享控制和修改Msshrui.dll,需要修改两个本地资源-对话框-1-自动单选按钮资源-对话框-30-自动单选按钮禁用以上两个地方的键值。其他选项可以根据自己的需要进行修改。找到相应的功能键,禁用不需要的功能。1.禁止打开文件。要修改Url.dll,你需要修改两个本地资源-对话框-7000资源-对话框-7005。只需禁用以上两处的键值即可。12.禁止改变系统桌面和修改Shdoc401.dll。需要修改资源的地方有两个-对话框-29952-按钮:浏览资源-对话框-29952-按钮:禁用以上两个地方的键值即可。13.禁止自定义系统文件夹和修改Shd401lc.dll。有两个地方需要修改资源-对话框-29957资源-对话框-29958。只需禁用以上两处的键值即可。15.禁止保存文件路径、打开文件路径和修改Comdlg32.dll。有两个地方需要修改资源-对话框-1547资源-对话框-1548。只需禁用以上两处的键值即可。六。注释1。本文以WindowsXP/2000操作系统的DLL文件修改为例,可能不适用于Windows98操作系统。修改DLL文件时请注意。2.在禁止下载的操作中,除了修改禁止下载的链接文件Shdoclc.dll,还需要修改禁止另存为的链接文件Shdoclc.dll。如果修改一个链接文件不能实现相应的功能,请检查其他链接文件中是否有键值需要修改。3.修改后的DLL链接文件需要在DOS模式下导入并重启才能生效。4.本文只介绍我们日常操作中经常用到的DLL修改选项。其他选项请参考DLL文件中的具体选项进行修改。5.在修改DLL文件之前,请备份系统的原DLL文件,以防修改无法恢复。