LoadLibrary 和 AfxLoadLibrary |
您所在的位置:网站首页 › loadlibrary绝对路径 › LoadLibrary 和 AfxLoadLibrary |
LoadLibrary 和 AfxLoadLibrary
项目
04/03/2023
进程调用 LoadLibrary 或 LoadLibraryEx 以显式链接到 DLL。 (MFC 应用使用 AfxLoadLibrary 或 AfxLoadLibraryEx。)如果函数执行成功,它会将指定的 DLL 映射到调用进程的地址空间中并返回该 DLL 的句柄。 此句柄可以与其他函数(如 GetProcAddress 和 FreeLibrary)一起在显式链接中使用。 有关详细信息,请参阅显示链接。 LoadLibrary 将尝试使用用于隐式链接的相同搜索顺序来查找 DLL。 LoadLibraryEx 使你可以更好地控制搜索路径顺序。 有关详细信息,请参阅动态链接库搜索顺序。 如果系统找不到 DLL 或如果入口点函数返回 FALSE,则 LoadLibrary 将返回 NULL。 如果对 LoadLibrary 的调用所指定的 DLL 模块已映射到调用进程地址空间中,则该函数将返回 DLL 的句柄并递增模块的引用数。 如果 DLL 具有入口点函数,则操作系统将在调用 LoadLibrary 或 LoadLibraryEx 的线程的上下文中调用此函数。 如果 DLL 已附加到进程中,则不会调用此入口点函数。 此情况是由于以前调用 DLL 的 LoadLibrary 或 LoadLibraryEx 函数时没有相应地调用 FreeLibrary 函数。 对于加载 MFC 扩展 DLL 的 MFC 应用程序,我们建议你使用 AfxLoadLibrary 或 AfxLoadLibraryEx,而不是 LoadLibrary 或 LoadLibraryEx。 MFC 函数会在显示加载 DLL 前处理线程同步。 AfxLoadLibrary 和 AfxLoadLibraryEx 的接口(函数原型)与 LoadLibrary 和 LoadLibraryEx 相同。 如果 Windows 无法加载 DLL,则进程会尝试从错误中恢复。 例如,进程会通知用户所发生的错误,并让用户指定 DLL 的其他路径。 重要 请确保指定任何 DLL 的完整路径。 LoadLibrary 加载文件时可能会首先搜索当前目录。 如果不完全限定文件的路径,则可能会加载一个非目标文件。 创建 DLL 时,请使用 /DEPENDENTLOADFLAG 链接器选项来指定静态链接的 DLL 依赖项的搜索顺序。 在 DLL 中,使用显式加载的依赖项和 LoadLibraryEx 或 AfxLoadLibraryEx 调用参数的完整路径指定模块搜索顺序。 有关详细信息,请参阅动态链接库安全和动态链接库搜索顺序。 你希望做什么?将可执行文件链接到 DLL 将可执行文件链接到 DLL 你想进一步了解什么?动态链接库搜索顺序 FreeLibrary 和 AfxFreeLibrary GetProcAddress 另请参阅 在 Visual Studio 中创建 C/C++ DLL |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |