什么叫做加载 DLL 失败

当应用程序运行过程中需要加载 DLL 文件时,Windows 根据这些信息发现并加载 DLL,然后通过符号名或标识号实现对 DLL 函数的动态链接。所有被应用程序调用的 DLL 文件都会在应用程序 EXE 文件加载时被加载在到内存中。可执行程序链接到一个包含 DLL 输出函数信息的输入库文件(.LIB文件)。作系统在加载使用可执行程序时加载 DLL。可执行程序直接通过函数名调用 DLL 的输出函数,调用方法和程序内部其 它的函数是一样的。

DLL文件是运行某些程序所必须的动态链接库(至于什么叫动态链接库,这里就不说了,你如果想了解清楚,百度搜索了看看吧)

dll是什么意思_dull是什么意思dll是什么意思_dull是什么意思


dll是什么意思_dull是什么意思


DTSERV~1.DLL

你现在听某段录音时出现这样的提示

说明系统启动插入程序时缺少这样的dll文件,于是提示你加载这个dll失败了,播放无法进行,也就是告诉你无法播放的原因了。

不过你说的问题不太详细,因此无法确切地帮到你。

DLL是MS系统的动态链接库,如果加载失败无非三种情况

1。文件被破坏

2。破坏此文件

3。安装OS的时候出现问题

2。从别的,正常的机器上拷贝一个DLL,放到指定目录(必须是你丢失的那个DLL)

木马或者有它的启动项 在杀毒后木马不存在了但是启动项还在,就会出现加载错误的提示

你可以在运行中输入MSCONFIG把启动中的.DLL禁用,哪个出错禁哪个,不要乱禁

说明你的注册表有问题,要不是下次在报错时就把那个什么dll记下了五,在

开始→运行 ,然后输入regsvr32.exe 什么.dll

谁解释一下 DDL文件 和 DLL文件 啊?

你可以在运行中输入MSCONFIG把启动中的.DLL禁用,哪个出错禁哪个不要乱禁

DLL意思为动态链接库。许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。DLL文件一般被存放在C:WindowsSystem目录下。

1、如何了可以使用DESCRIPTION语句描述DLL的用途(此句可选);解某应用程序使用哪些DLL文件

右键单击该应用程序并选择快捷菜单中的“快速查看”命令,在随后出现的“快速查看”窗口的“引入表”一栏中你将看到其使用DLL文件的情况。

2、如何知道DLL文rundll32.exe是动态链接库dll文件的宿主件被几个程序使用

运行Regedit,进入HKEY_LOCAL_MACHINESoftwareMicrosrftWindowsCurrent-VersionSharedDlls子键查看,其右边窗口中就显示了所有DLL文件及其相关数据,其中数据右边小括号内的数字就说明了被几个程序使用,(2)表示被两个程序使用,(0)则表示无程序使用,可以将其删除。 3、如何解决DLL文件丢失的情况

有时在卸载文件时会提醒你删除某个DLL文件可能会影响其他应用程序的运行。所以当你卸载软件时,就有可能误删共享的DLL文件。

DLL(Dynamic Link Library)动态链接库

DDL(Data Definition Language)数据库模式定义语言

扩展名为“DLL”是什么文件?用什么程序打开?

成相对的功能,它们彼此协作来完成整个软件系统的工作。可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序 EXE 文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间,造成系统资源的浪费;另一个缺点是,在编写大的 EXE 程序时,在每次修改重建时都必须调整编译所有源代码,增加了编译过程的复杂性,也不利于阶段性的单元测试。

Windows 系统平台上提供了一种完全不同的较有效的编程和运行环境,你可以将的程序模块创建为较小的 DLL (Dynamic Linkable Library) 文件,并可对它们单独编译和测试。在运行时,只有当 EXE 程序确实要调用这些 DLL 模块的情况下,系统才会将它们装载到内存空间中。这种方式不仅减少了 EXE 文件的大小和对内存空间的需求,而且使这些 DLL 模块可以同时被多个应用程序使用。Windows 自己就将一些主要的系统功能以 DLL 模块的形式实现。

一般来说,DLL 是一种磁盘文件,以.dll、.DRV、.FON、.SYS 和许多以 .EXE 为扩展名的系统文件都可以是 DLL。它由全局数据、服务函数和资源组成,在运行时被系统加载到调用进程的虚拟空间中,成为调用进程的一部分。如果与其它 DLL 之间没有冲突,该文件通常映射到进程虚拟空间的同一地址上。DLL 模块中包含各种导出函数,用于向外界提供服务。DLL 可以有自己的数据段,但没有自己的堆栈,使用与调用它的应用程序相同的堆栈模式;一个 DLL 在内存中只有一个实例;DLL 实现了代码封装性;DLL 的编制与具体的编程语言及编译器无关。

在 Win32 环境中,每个进程都了自己的读/写全局变量。如果想要与其它进程共享内存,必须使用内存映射文件或者声明一个共享数据段。DLL 模块需要的堆栈内存都是从运行进程的堆栈中分配出来的。Windows 在加载 DLL 模块时将进程函数调用与 DLL 文件的导出函数相匹配。Windows 作系统对 DLL 的作仅仅是把 DLL 映射到需要它的进程的虚拟地址空间里去。DLL 函数中的代码所创建的任何对象(包括变量)都归调用它的线程或进程所有。

1、静态调用方式:由编译系统完成对 DLL 的加载和应用程序结束时 DLL 卸载的编码(如还有其它程序使用该 DLL,则 Windows 对 DLL 的应用记录减1,直到所有相关程序都结束对该 DLL 的使用时才释放它,简单实用,但不够灵活,只能满足一般要求。

隐式的调用:需要把产生动态连接库时产生的 .LIB 文件加入到应用程序的工程中,想使用 DLL 中的函数时,只须说明一下。隐式调用不需要调用 LoadLibrary() 和 FreeLibrary()。程序员在建立一个 DLL 文件时,链接程序会自动生成一个与之对应的 LIB 导入文件。该文件包含了每一个 DLL 导出函数的符号名和可选的标识号,但是并不含有实际的代码。LIB 文件作为 DLL 的替代文件被编译到应用程序项目中。

当程序员通过静态链接方式编译生成应用程序时,应用程序中的调用函数与 LIB 文件中导出符号相匹配,这些符号或标识号进入到生成的 EXE 文件中。LIB 文件中也包含了对应的 DL L文件名(但不是完全的路径名),链接程序将其存储在 EXE 文件内部。

2、动态调用方式:是由编程者用 API 函数加载和卸载 DLL 来达到调用 DLL 的目的,使用上较复杂,但能更加有效地使用内存,是编制大型应用程序时的重要方式。

显式的调用:是指在应用程序中用 LoadLibrary 或 MFC 提供的 AfxLoadLibrary 显式的将自己所做的动态连接库调进来,动态连接库的文件名即是上面两个函数的参数,再用 GetProcAddress() 获取想要引入的函数。自此,你就可以象使用如同本应用程序自定义的函数一样来调用此引入函数了。在应用程序退出之前,应该用 FreeLibrary 或 MFC 提供的 AfxFreeLibrary 释放动态连接库。直接调用 Win32 的 LoadLibary 函数,并指定 DLL 的路径作为参数。LoadLibary 返回 HINSTANCE 参数,应用程序在调用 GetProcAddress 函数时使用这一参数。GetProcAddress 函数将符号名或标识号转换为 DLL 内部的地址。程序员可以决定 DLL 文件何时加载或不加载,显式链接在运行时决定加载哪个 DLL 文件。使用 DLL 的程序在使用之前必须加载(LoadLibrary)加载DLL从而得到一个DLL模块的句柄,然后调用 GetProcAddress 函数得到输出函数的指针,在退出之前必须卸载DLL(FreeLibrary)。

Windows将遵循下面的搜索顺序来定位 DLL:

包含EXE文件的目录

进程的当前工作目录

Windows系统目录

列在 Path 环境变量中的一系列目录

MFC中的DLL

Non-MFC DLL:指的是不用 MFC 的类库结构,直接用 C 语言写的 DLL,其输出的函数一般用的是标准 C 接口,并能被 非 MFC 或 MFC 编写的应用程序所调用。

Regular DLL:和下述的 Extension DLLs 一样,是用 MFC 类库编写的。明显的特点是在源文件里有一个继承 CWinApp 的类。其又可细分成静态连接到 MFC 和动态连接到 MFC 上的。

静态连接到 MFC 的动态连接库只被 VC 的专业 版和企业版所支持。该类 DLL 应用程序里头的输出函数可以被任意 Win32 程序使用,包括使用 MFC 的应用程序。输入函数有如下形式:

extern "C" EXPORT YourExportedFunction();

如果没有 extern "C" 修饰,输出函数仅仅能从 C++ 代码中调用。

DLL 应用程序从 CWinApp 派生,但没有消息循环。

动态链接到 MFC 的 规则 DLL 应用程序里头的输出函数可以被任意 Win32 程序使用,包括使用 MFC 的应用程序。但是,所有从 DLL 输出的函数应该以如下语句开始:

AFX_MANAGE_STATE(AfxGetStaticModuleState( ))

此语句用来正确地切换 MFC 模块状态。

Regular DLL能够被所有支持 DLL这个程序对你系统的正常运行是非常重要的。注意:rundll.exe也可能是LOXOSCAM和Backdoor.SchoolBus.B 木一部分。该会在Windows XP和2000中出现。该允许攻击者访问你的计算机。该进程的安全等级是建议立即删除。 技术的语言所编写的应用程序所调用。在这种动态连接库中,它必须有一个从 CWinApp 继承下来的类,DLLMain 函数被 MFC 所提供,不用自己显式的写出来。

Extension DLL:用来实现从 MFC 所继承下来的类的重新利用,也就是说,用这种类型的动态连接库,可以用来输出一个从 MFC 所继承下来的类。它输出的函数仅可以被使用 MFC 且动态链接到 MFC 的应用程序使用。可以从 MFC 继承你所想要的、更适于你自己用的类,并把它提供给你的应用程序。你也可随意的给你的应用程序提供 MFC 或 MFC 继承类的对象指针。Extension DLL使用 MFC 的动态连接版本所创建的,并且它只被用 MFC 类库所编写的应用程序所调用。Extension DLLs 和 Regular DLLs 不一样,它没有从 CWinApp 继承而来的类的对象,所以,你必须为自己 DLLMain 函数添加初始化代码和结束代码。

和规则 DLL 相比,有以下不同:

1、它没有从 CWinApp 派生的对象;

2、它必须有一个 DLLMain 函数;

3、DLLMain 调用 AfxInitExtensionModule 函数,必须检查该函数的返回值,如果返回0,DLLMmain 也返回 0;

4、如果它希望输出 CRuntimeClass 类型的对象或者资源,则需要提供一个初始化函数来创建一个 CDynLinkLibrary 对象。并且,有必要把初始化函数输出;

5、使用扩展 DLL 的 MFC 应用程序必须有一个从 CWinApp 派生的类,而且,一般在InitInstance 里调用扩展 DLL 的初始化函数。

DLL入口函数

1、每一个 DLL 必须有一个入口点,DLLMain 是一个缺省的入口函数。DLLMain 负责初始化和结束工作,每当一个新的进程或者该进程的新的线程访问 DLL 时,或者访问 DLL 的每一个进程或者线程不再使用DLL或者结束时,都会调用 DLLMain。但是,使用 TerminateProcess 或 TerminateThread 结束进程或者线程,不会调用 DLLMain。

DLLMain的函数原型:

BOOL APIENTRY DLLMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID

lpReserved)

{switch(ul_reason_for_call)

{case DLL_PROCESS_ATTACH:

case DLL_THREAD_ATTACH:

case DLL_PROCESS_DETACH:

return TRUE;

}}

参数:

hMoudle:是动态库被调用时所传递来的一个指向自己的句柄(实际上,它是指向_DGROUP段的一个选择符);

ul_reason_for_call:是一个说明动态库被调原因的标志。当进程或线程装入或卸载动态连接库的时候,作系统调用入口函数,并说明动态连接库被调用的原因。它所有的可能值为:

DLL_PROCESS_ATTACH: 进程被调用;

DLL_THREAD_ATTACH: 线程被调用;

DLL_PROCESS_DETACH: 进程被停止;

lpReserved:是一个被系统所保留的参数;

2、_DLLMainCRTStartup

为了使用 "C" 运行库 (CRT,C Run time Library) 的 DLL 版本(多线程),一个 DLL 应用程序必须指定 _DLLMainCRTStartup 为入口函数,DLL 的初始化函数必须是 DLLMain。

_DLLMainCRTStartup 完成以下任务:当进程或线程捆绑(Attach) 到 DLL 时为 "C" 运行时的数据 (C Runtime Data) 分配空间和初始化并且构造全局 "C++"对象,当进程或者线程终止使用DLL(Detach) 时,清理 C Runtime Data 并且销毁全局 "C++" 对象。它还调用 DLLMain 和 RawDLLMain 函数。

RawDLLMain 在 DLL 应用程序动态链接到 MFC DLL 时被需要,但它是静态链接到 DLL 应用程序的。在讲述状态管理时解释其原因。

关于调用约定

动态库输出函数的约定有两种:调用约定和名字修饰约定。

1)调用约定(Calling convention):决定函数参数传送时入栈和出栈的顺序,由调用者还是被调用者把参数弹出栈,以及编译器用来识别函数名字的修饰约定。

函数调用约定有多种,这里简单说一下:

1、__stdcall 调用约定相当于16位动态库中经常使用的 PASCAL 调用约定。在32位的 VC++5.0 中PASCAL 调用约定不再被支持(实际上它已被定义为__stdcall。除了__pascal 外,__fortran 和__syscall也不被支持),取而代之的是 __stdcall 调用约定。两者实质上是一致的,即函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。

_stdcall 是 Pascal 程序的缺省调用方式,通常用于 Win32 API 中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC 将函数编译后会在函数名前面加上下划线前缀,在函数名后加上 "@" 和参数的字节数。

2、C 调用约定(即用__cdecl 关键字说明)按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于传送参数的内存栈是由调用者来维护的(正因为如此,实现可变参数的函数只能使用该调用约定)。另外,在函数名修饰约定方面也有所不同。

_cdecl 是 C 和 C++ 程序缺省的调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用 _stdcall 函数的大。函数采用从右到左的压栈方式。VC 将函数编译后会在函数名前面加上下划线前缀。 它是 MFC 缺省调用约定。

3、__fastcall 调用约定是 "人" 如其名,它的主要特点就是快,因为它是通过寄存器来传送参数的(实际上,它用 ECX 和 EDX 传送前两个双字(DWORD)或更小的参数,剩下的参数仍旧自右向左压栈传送,被调用的函数在返回前清理传送参数的内存栈),在函数名修饰约定方面,它和前两者均不同。

⒈首先点击 文件夹选项,勾选显示所有文件,去掉隐藏受保护的 作系统文件和隐藏已知文件类型的扩展名前面的勾。_fastcall方式的函数采用寄存器传递参数,VC 将函数编译后会在函数名前面加上"@"前缀,在函数名后加上"@"和参数的字节数。

4、thiscall 仅仅应用于 "C++" 成员函数。this 指针存放于 CX 寄存器,参数从右到左压。thiscall 不是,因此不能被程序员指定。

5、naked call采用 1-4 的调用约定时,如果必要的话,进入函数时编译器会产生代码来保存ESI,EDI,EBX,EBP寄存器,退出函数时则产生代码恢复这些寄存器的内容。

naked call不产生这样的代码。naked call不是类型修饰符,故必须和_declspec 共同使用。

关键字 __stdcall、__cdecl 和 __fastcall 可以直接加在要输出的函数前,也可以在编译环境的 Setting...C/C++ Code Generation 项选择。当加在输出函数前的关键字与编译环境中的选择不同时,直接加在输出函数前的关键字有效。它们对应的命令行参数分别为/Gz、/Gd 和 /Gr。缺省状态为/Gd,即__cdecl。

要完全模仿 PASCAL 调用约定首先必须使用 __stdcall 调用约定,至于函数名修饰约定,可以通过其它方法模仿。还有一个值得一提的是 WINAPI 宏,Windows.h 支持该宏,它可以将出函数翻译成适当的调用约定,在 WIN32 中,它被定义为 __stdcall。使用 WINAPI 宏可以创建自己的 APIs。

2)名字修饰约定

1、修饰名(Decoration name)

"C" 或者 "C++" 函数在内部(编译和链接)通过修饰名识别。修饰名是编译器在编译函数定义或者原型时生成的字符串。有些情况下使用函数的修饰名是必要的,如在模块定义文件里头指定输出"C++"重载函数、构造函数、析构函数,又如在汇编代码里调用"C""或"C++"函数等。

修饰名由函数名、类名、调用约定、返回类型、参数等共同决定。

2、名字修饰约定随调用约定和编译种类(C或C++)的不同而变化。函数名修饰约定随编译种类和调用约定的不同而不同,下面分别说明。

a、C编译时函数名修饰约定规则:

__stdcall 调用约定在输出函数名前加上一个下划线前缀,后面加上一个"@"符号和其参数的字节数,格式为 _functionname@number。

__cdecl调用约定仅在输出函数名前加上一个下划线前缀,格式为 _functionname。

__fastcall调用约定在输出函数名前加上一个"@"符号,后面也是一个"@"符号和其参数的字节数,格式为@functionname@number。

它们均不改变输出函数名中的字符大小写,这和PASCAL调用约定不同,PASCAL约定输出的函数名无任何修饰且全部大写。

b、C++编译时函数名修饰约定规则:

__stdcall调用约定:

1、以"?"标识函数名的开始,后跟函数名;

2、函数名后面以"@@YG"标识参数表的开始,后跟参数表;

3、参数表以代号表示:

X——void,

D——char,

E——unsigned char,

F——short,

H——int,

I——unsigned int,

K——unsigned long,

N——double,

_N——bool,

....

PA——表示指针,后面的代号表明指针类型,如果相同类型的指针连续出现,以"0"代替,一个"0"代表一次重复;

4、参数表的项为该函数的返回值类型,其后依次为参数的数据类型,指针标识在其所指数据类型前;

5、参数表后以"@Z"标识整个名字的结束,如果该函数无参数,则以"Z"标识结束。

其格式为"?functionname@@YG@Z"或"?functionname@@YGXZ",

例如

int Test1(char var1,unsigned long)-----“?Test1@@YGHPADK@Z”

void Test2() -----“?Test2@@YGXXZ”

__cdecl调用约定:

规则同上面的_stdcall调用约定,只是参数表的开始标识由上面的"@@YG"变为"@@YA"。

__fastcall调用约定:

规则同上面的_stdcall调用约定,只是参数表的开始标识由上面的"@@YG"变为"@@YI"。

VC++对函数的省缺声明是"__cedcl",将只能被C/C++调用。

动态链接库中定义有两种函数:导出函数(export function)和内部函数(internal function)。导出函数可以被其它模块调用,内部函数在定义它们的DLL程序内部使用。

1、传统的方法

在模块定义文件的 EXPORT 部分指定要输入的函数或者变量。语法格式如下:

entryname[=internalname] [@ordinal[NONAME]] [DATA] [PRIVATE]

其中:

entryname 是输出的函数或者数据被引用的名称;

internalname 同 entryname;

@ordinal 表示在输出表中的顺序号(index);

NONAME 仅仅在按顺序号输出时被使用(不使用 entryname );

DATA 表示输出的是数据项,使用 DLL 输出数据的程序必须声明该数据项为 _declspec(DLLimport)。

上述各项中,只有 entryname 项是必须的,其他可以省略。

对于"C"函数来说,entryname 可以等同于函数名;但是对 "C++" 函数(成员函数、非成员函数)来说,entryname 是修饰名。可以从 .map 映像文件中得到要输出函数的修饰名,或者使用DUMPBIN /SYMBOLS 得到,然后把它们写在 .def 文件的输出模块。DUMPBIN 是VC提供的一个工具。

如果要输出一个 "C++" 类,则把要输出的数据和成员的修饰名都写入 .def 模块定义文件。

2、在命令行输出

对链接程序 LINK 指定 /EXPORT 命令行参数,输出有关函数。

3、使用 MFC 提供的修饰符号 _declspec(DLLexport)

在要输出的函数、类、数据的声明前加上 _declspec(DLLexport) 修饰符表示输出。__declspec(DLLexport) 在 C 调用约定、C 编译情况下可以去掉输出函数名的下划线前缀。extern "C" 使得在 C++ 中使用 C 编译方式成为可能。在"C++"下定义"C"函数需要加 extern "C" 。用 extern "C" 来指明该函数使用 C 编译方式。输出的 "C" 函数可以从 "C" 代码里调用。

例如,在一个 C++ 文件中,有如下函数:

extern "C"

其M——float,输出函数名为:Test

AFX_CLASS_IMPORT:__declspec(DLLexport)

AFX_API_IMPORT:__declspec(DLLexport)

AFX_DATA_IMPORT:__declspec(DLLexport)

AFX_CLASS_EXPORT:__declspec(DLLexport)

AFX_API_EXPORT:__declspec(DLLexport)

AFX_DATA_EXPORT:__declspec(DLLexport)

AFX_EXT_CLASS: #ifdef _AFXEXT

AFX_CLASS_EXPORT

#else

AFX_CLASS_IMPORT

AFX_EXT_API:#ifdef _AFXEXT

AFX_API_EXPORT

#else

AFX_API_IMPORT

AFX_EXT_DATA:#ifdef _AFXEXT

AFX_DATA_EXPORT

#else

AFX_DATA_IMPORT

像 AFX_EXT_CLASS 这样的宏,如果用于 DLL 应用程序的实现中,则表示输出(因为_AFX_EXT被定义,通常是在编译器的标识参数中指定该选项 /D_AFX_EXT);如果用于使用DLL的应用程序中,则表示输入(_AFX_EXT没有定义)。

要输出整个的类,对类使用_declspec(_DLLexpot);要输出类的成员函数,则对该函数使用_declspec(_DLLexport)。如:

{…

}extern "C" AFX_EXT_API void WINAPI InitMYDLL();

这几种方法中,采用第三种,方便好用;其次是种,如果按顺序号输出,调用效率会高些;最次是第二种。

模块定义文件(.DEF)

个语句必须是LIBRARY语句,指出DLL的名字;

EXPORTS 语句列出被导出函数的名字;将要输出的函数修饰名罗列在 EXPORTS 之下,这个名字必须与定义函数的名字完全一致,如此就得到一个没有任何修饰的函数名了。

";"对一行进行注释(可选)。 DLL程序和调用其输出函数的程序的关系

1、DLL与进程、线程之间的关系

DLL模块被映射到调用它的进程的虚拟地址空间。

DLL使用的内存从调用进程的虚拟地址空间分配,只能被该进程的线程所访问。

DLL的句柄可以被调用进程使用;调用进程的句柄可以被DLL使用。

DLL使用调用进程的栈。

2、关于共享数据段

在程序里加入预编译指令,或在开发环境的项目设置里也可以达到设置数据段属性的目的.必须给这些变量赋初值,否则编译器会把没有赋初始值的变量放在一个叫未被初始化的数据段中。

建筑识图基础中DLL是什么简称?

1。重新装作系统补充下:一般出现这种情况都是在杀毒后

DLL“地连梁.......”。

DLL这个代号在基础的平法注写中是很不规范的,应该说建筑识图中也找不到DLL这个代号。

现行的平法基础联系梁代号应为JLL。

dialog.dll是什么意思

case DLL_THREAD_DETACH:

dialog.dll是指电regedit脑的文件。

这是因为你删掉了某个文件,并且他已经被设置为自动运行,所以他会提示你找不到程序。你首先进MSCONFIG在运行里找,看有没有Dtserv~1.dll的加载项,有的话就把前面的勾勾去掉。

ialog.dll是电脑系统中十分重要的dll文件。缺少它就会造成部分软件或游戏不能正常运行。当用户的电脑弹出提示“无法找到Dialog.dll”或“计算机缺少Dialog.dll”等错误问题,使用它可以帮助用户解决上述问题。

发展历史

计算工具的演化经历了由简单到复杂、从低级到高级的不同阶段,例如从“结绳记事”中的绳结到算筹、算盘计算尺、机械计算机等。它们在不同的历史时期发挥了各自的历史作用,同时也启发了现代电子计算机的研制思想。

18,美国科学家赫尔曼·何乐礼研制出以电力为基础的电动制表机,用以储存计算资料。

1930年,美国科学家范内瓦·造出世界上首台模拟电子计算机。

动态链接库(DLL)是什么意思啊?

调用方式

你可以简单的把 DLL看手动在注册表去掉键值:成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库

-静态链接库-动态链接库”的时代。静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含最终生成的 EXE文件中了。但是若使用 DLL,该 DLL不必被包含在最终

EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与 EXE的 DLL文件。静态链接库和动态链接库的另外一个区

别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。

DLL的全称是Dynamic Link Library, 中文叫做“动态链接文件”,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。在Windows作系打开窗口上,点菜单栏文件,导出命名先备份一次你的注册表。统中, DLL对于程序执行是非常重要的, 因为程序在执行的时候, 必须链接到DLL文件, 才能够正确地运行,而有些DLL文件可以被许多程序共用。因此, 程序设计人员可以利用DLL文件, 使程序不至于太过巨大。但是当安装的程序越来越多, DLL文件也就会越来越多, 如果当你删除程序的时候, 没有用的DLL文件没有被删除的话, 久而久之就造成系统的负担了。

什么叫做加载DLL失败

DLL定义的全局变量可以被调用进程访问;DLL可以访问调用进程的全局数据。使用同一DLL的每一个进程都有自己的DLL全局变量实例。如果多个线程并发访问同一变量,则需要使用同步机制;对一个DLL的变量,如果希望每个使用DLL的线程都有自己的值,则应该使用线程局部存储(TLS,Thread Local Strorage)。

DLL是MS系统的动态链接库,如果加载失败无非三种情况

解决办法:

1。文件被破坏

2。破坏此文件

3。安装OS的时候出现问题

2。从别的,正常的机器上拷贝一个DLL,放到指定目录(必须是你丢失的那个DLL)

木马或者有它的启动项 在杀毒后木马不存在了但是启动项还在,就会出现加载错误的提示

windwos中任何软件的启动,都需要相应的dll支持的class AFX_EXT_CLASS CTextDoc : public CDocument。当某些软件被破坏后,dll就无法加载,软件也就不能运行了

建筑识图基础中DLL是什么简称?

模块定义文件(.DEF)是一个或多个用于描述 DLL 属性的模块语句组成的文本文件,每个DEF文件至少必须包含以下模块定义语句:

DLL“地连梁关于DLL的函数”。

DL输出函数的方法有以下几种:L这个代号在基础的平法注写中是很不规范的,应该说建筑识图中也找不到DLL这个代号。

现行的平法基础联系梁代号应为JLL。

计算机图形学中DLL什么意思?

从开始->运行,

动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。

J——long,

更多的信息可以看百度百科!~谢DLL_THREAD_DETACH: 线程被停止;谢!~

RUNDLL是什么?

3。杀毒

这表明这个文件没有找到了,不过应该不是系统该有的文件,直接从注册表中搜索c:windowsycejpy77.dll,然后将搜索到的项清空,或者删除就可以了

需要从安全模式作才可以

RUNDLL应该是个木马,被删了,但模块还在。点开始-运行 输入“regedit”回车,打开的是注册表,要小心作哦。“编辑”-“查找”输入“RUNDLL”回车 把查出的C:windows32msibmRUNDLL删去。有几个删几个。OK

它一般在这两个位置下面:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionpoliciesExplorerRun

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun

看看可以吗 灵活运用一下

一般是的尸体~

简单,让它自动恢复就可以了。

方法:MFC提供Windows目录了一些宏,就有这样的作用。

选择C盘“属性”/点击“工具”,选择“查错/开始检查”,然后勾上“自动修复文件系统错误、扫描并试图修复坏扇区”,再点击“开始”即可。

然后重启,电脑会在启动时检查硬盘,并自动恢复丢失的小文件。(系统本身有备份的,所以能自动恢复)

在运行中输入:msconfig.exe,把其启动项的勾去掉,就可以了。

找不到指定模块,那是因为,把木模块给删除了,当然后你找不到了,如果还能找到,那说明木马没有删除。当说找不到指定模块,应该说是好事,不需要大惊小怪。

以上只代表个人观点。

也有可能是系统文件丢失,一般不会。在开始菜单的运行中运行sfc,插入系统光盘修复吧。

或者用安装盘,用修复安装。

实在不行了先在故障恢复台或DOS下删除这个文件,再覆盖安装。

教你一个简单的方法

在运行窗口敲入如下命令:

regsvr32 C:windows32msapi32.dll /u

运行后就不会再有烦恼了!!!

DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。DLL文件一般被存放在C:WindowsSystem目录下。

1、如何了解某应用程序使用哪些DLL文件

右键单击该应用程序并选择快捷菜单中的“快速查看”命令,在随后出现的“快速查看”窗口的“引入表”一栏中你将看到其使用DLL文件的情况。

2、如何知道DLL文件被几个程序使用

运行Regedit,进入HKEY_LOCAL_MACHINESoftwareMicrosrftWindowsCurrent-VersionSharedDlls子键查看,其右边窗口中就显示了所有DLL文件及其相关数据,其中数据右边小括号内的数字就说明了被几个程序使用,(2)表示被两个程序使用,(0)则表示无程序使用,可以将其删除。

3、如何解决DLL文件丢失的情况

有时在卸载文件时会提醒你删除某个DLL文件可能会影响其他应用程序的运行。所以当你卸载软件时,就有可能误删共享的DLL文件。一旦出现了丢失DLL文件的情况,如果你能确定其名称,可以在Syckup(系统备份文件夹)中找到该DLL文件,将其到System文件夹中。如果这样不行,在电脑启动时又总是出现“dll文件丢失……”的提示框,你可以在“开始/运行”中运行Msconfig,进入系统配置实用程序对话框以后,单击选择“System.ini”标签,找出提示丢失的DLL文件,使其不被选中,这样开机时就不会出现错误提示了。

如果你是98或XP系统:点开始---运行---输入msconfig----启动,在里面找到c:windowns32hkvl.dll,然后把它前面的勾去掉试试。 确认后会提示你是否重启机器,此时重不重启都可以,当你下次在开机时就不会出现该错误提示了

杀毒后在启动项里的残留

开始--运行输入msconfig在启动项里去掉DTSERV~1.DLL

如果没有的话

输入

然后点击编辑->查看

输入

把找到的键值删除

按F3继续,直到完成。

重启就应该没有了。

rundll.exe是Windows 95/98/Me系统的一部分。

【使用方法】

无论是Rundll32.exe或Rundll.exe,运行都是毫无作用的,要在程序后面指定加载DLL文件。在Windows的任务管理器中,我们只能看到 rundll32.exe进程,而其实质是调用的DLL。我们可以利用 进程管理器等 软件来查看它具体运行了哪些DLL文件。

【手动删除方法】

⒉在 桌面上新建一个 记事本,然后 重命名为rundll.exe当出现更改其扩展名那个对话框时,选择"是",右键--,这一步很重要!!

⒊依次右键打开所有盘符,删除所有的rundll.exe,删除完之后,马上按ctrl+v并且选择是,一定要快,然后,用 记事本打开那个好像是 autorun.inf的文件,把里面的内容全部删除,并且保存.

⒋运行regedit,按ctrl+f,输入rundll,点击查找,找到后右键删除,然后按f3查找下一个,只要见到就删除,直到出现查找完毕,重新启动电脑

⒌打开 我的电脑,双击某个盘符,会出现不是有效的win32程序那个对话框,点击确定,在 地址栏里选择某个盘符,现在开始删除rundll.exe和 autorun.inf这两个文件,所有的盘符都要删,删除完之后,再重起一次。