LoadLibrary

【勇芳软件工作室】汉化HomePreviousNext

LoadLibrary函数将指定的可执行模块映射到调用进程的地址空间。

HINSTANCE LoadLibrary(

LPCTSTR 【lpLibFileName】//可执行模块文件名的地址
); 

参数

【lpLibFileName】

指向以空字符结尾的字符串,命名可执行模块(一个.DLL或.EXE文件)。指定的名称是模块的文件名,并且与库模块本身中存储的名称无关,如模块定义(.DEF)文件中的LIBRARY关键字所指定。

如果字符串指定一个路径,但该文件不存在于指定的目录中,则该函数将失败。

如果未指定路径,并省略了文件扩展名,则附加默认库扩展名.DLL。但是,文件名字符串可以包括一个尾点字符(。),以指示模块名称没有扩展名。当没有指定路径时,该函数按以下顺序搜索文件:

1.应用程序加载的目录。

2.当前目录。

3.Windows 95: Windows系统目录。使用GetSystemDirectory函数获取此目录的路径。

Windows NT: 32位Windows系统目录。使用GetSystemDirectory函数获取此目录的路径。该目录的名称是SYSTEM32。

4.Windows NT: 16位Windows系统目录。没有获取此目录的路径的Win32函数,但它被搜索。该目录的名称是SYSTEM。

5.Windows目录。使用GetWindowsDirectory函数获取此目录的路径。

6. PATH环境变量中列出的目录。

搜索的第一个目录是包含用于创建调用进程的映像文件的一个目录(有关详细信息,请参阅CreateProcess函数)。这样做可以找到与进程关联的私有动态链接库(DLL)文件,而不会将进程的安装目录添加到PATH环境变量中。

一旦该函数获取了库模块文件的完全限定路径,则将路径与当前加载到调用进程的库模块的完整路径进行比较(独立于)。这些库包括当进程启动时加载的那些库以及LoadLibrary之前加载但不被FreeLibrary卸载的库。如果路径匹配已加载模块的路径,该函数只会增加模块的引用计数,并返回该库的模块句柄。

返回值

如果函数成功,则返回值是模块的句柄。

如果函数失败,返回值为NULL。要获取扩展错误信息,请调用GetLastError.

备注

可以使用LoadLibrary映射DLL模块并返回可在GetProcAddress中使用的句柄来获取DLL函数的地址。LoadLibrary也可以用于映射其他可执行模块。例如,该函数可以指定.EXE文件以获取可在FindResourceLoadResource中使用的句柄。

模块句柄不是全局或可继承的。通过一个进程调用LoadLibrary不会产生另一个进程可以使用__的句柄,例如调用GetProcAddress.在调用GetProcAddress之前,其他进程必须自己调用该模块LoadLibrary.

如果模块是尚未映射到调用进程的DLL,系统将使用DLL_PROCESS_ATTACH值调用DLL的DllEntryPoint函数。如果DLL的入口点函数不返回TRUE,则LoadLibrary将失败并返回NULL。

Windows 95:如果您使用LoadLibrary加载包含数字标识符大于0x7FFF的资源的模块,LoadLibrary将失败。

也可以看看

DllEntryPoint, FindResource, FreeLibrary, GetProcAddress, GetSystemDirectory, GetWindowsDirectory, LoadResource