您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 1浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SetDllDirectoryA 函数

顺其自然~ 发布时间:2021-12-29 16:59:59 ,浏览量:1

向用于应用程序的 DLL 的搜索路径添加一个目录,以方便搜索DLL。

    句法
BOOL SetDllDirectoryA([in, optional] LPCSTR lpPathName);
参数

[in, optional] lpPathName

要添加到搜索路径的目录。如果此参数为空字符串 (""),则调用将从默认 DLL 搜索顺序中删除当前目录。如果此参数为 NULL,则该函数将恢复默认搜索顺序。

     返回值

如果函数成功,则返回值非零。

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

     说明

该 SetDllDirectory会功能会影响到所有后续调用 的LoadLibrary和 LoadLibraryEx功能。当指定目录在搜索路径中时,它还有效地禁用安全 DLL 搜索模式。

对于未运行打包或受保护进程的Win32 进程,调用此函数还会影响从调用该函数的进程开始的子进程的 DLL 搜索顺序。

调用 SetDllDirectory 后,标准的 DLL 搜索路径为:

  1. 应用程序加载的目录。
  2. lpPathName参数指定的目录。
  3. 系统目录。使用 GetSystemDirectory函数获取该目录的路径。该目录的名称是 System32。
  4. 16 位系统目录。没有获取这个目录路径的函数,但是会搜索。该目录的名称是 System。
  5. Windows 目录。使用 GetWindowsDirectory函数获取该目录的路径。
  6. PATH 环境变量中列出的目录。

每次调用SetDllDirectory函数时,它都会替换上一次SetDllDirectory调用中指定的目录。要指定多个目录,请使用AddDllDirectory函数并使用LOAD_LIBRARY_SEARCH_USER_DIRS调用LoadLibraryEx。

要恢复到LoadLibrary和 LoadLibraryEx使用的标准搜索路径 ,请使用 NULL调用 SetDllDirectory。这还会根据SafeDllSearchMode注册表值恢复安全的 DLL 搜索模式。

要编译使用此函数的应用程序,请将 _WIN32_WINNT 定义为 0x0502 或更高版本。有关详细信息,请参阅 使用 Windows 标头。

winbase.h 标头将 SetDllDirectory 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。将编码中立的别名与非编码中立的代码混合使用会导致不匹配,从而导致编译或运行时错误。有关更多信息,请参阅函数原型约定。

     要求
要求   最低支持客户端Windows Vista、Windows XP SP1 [仅限桌面应用程序]最低支持服务器Windows Server 2003 [仅限桌面应用程序]目标平台Windows头文件winbase.h (include Windows.h)LibraryKernel32.libDLLKernel32.dll
关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.0663s