VC++ loadlibrary加载三方dll失败, 返回错误码-126的解决方法

让我来详细讲解一下“VC++ loadlibrary()加载三方dll失败, 返回错误码:126的解决方法”的完整攻略。

首先,错误码126是指模块无法找到,也就是说loadlibrary()函数无法找到需要加载的 DLL 文件。这种情况可能是因为 DLL 文件所需的其他 DLL 文件在系统路径之外,或者是缺少 DLL 文件所需的某些组件。解决这个问题的一种方法是,将需要加载的 DLL 文件和其所需文件放在系统路径之内(包括系统文件夹和当前工作文件夹),或者手动指定加载路径。下面是具体的解决方法:

解决方法一:

在调用 LoadLibrary() 函数之前,先调用 SetDllDirectory() 函数设置 DLL 文件目录路径。比如,要加载 D:\MyDll.dll,可以使用如下代码来设置 DLL 文件目录路径:

SetDllDirectory(TEXT("D:\\"));
HINSTANCE hDll = LoadLibrary(TEXT("D:\\MyDll.dll"));

这样就可以找到需要加载的 DLL 文件了。

解决方法二:

将需要加载的 DLL 文件所依赖的其他 DLL 文件一同复制到同一目录下。

示例一:

假设载入的 DLL 文件名为 MyDll.dll,这个 DLL 文件所需要的其他 DLL 文件为 OtherDll.dll,在代码中载入 MyDll.dll 时,将它所需要的 OtherDll.dll 一同复制到同一目录下,然后重新运行。代码示例:

CopyFile(TEXT("OtherDll.dll"), TEXT(".\\OtherDll.dll"), FALSE);
HINSTANCE hDll = LoadLibrary(TEXT("MyDll.dll"));

示例二:

假设载入的 DLL 文件名为 MyDll.dll,这个 DLL 文件所需要的其他 DLL 文件为 OtherDll.dll、Other2.dll,在代码中载入 MyDll.dll 时,将其所需的两个 DLL 文件一同复制到同一目录下,然后重新运行。代码示例:

CopyFile(TEXT("OtherDll.dll"), TEXT(".\\OtherDll.dll"), FALSE);
CopyFile(TEXT("Other2.dll"), TEXT(".\\Other2.dll"), FALSE);
HINSTANCE hDll = LoadLibrary(TEXT("MyDll.dll"));

以上就是VC++ loadlibrary()加载三方dll失败, 返回错误码:126的解决方法的完整攻略,希望可以帮助到你。

营销型网站