解决问题丨Demo中使用loadlibrary返回 NULL,错误码0

问题已解决

参考:
参考1:LoadLibrary无法加载.dll解决思路丨包含静态库动态库介绍,引文中含有错误代码表链接,可以对照使用
参考2:loadlibrary返回 NULL , 错误码值126丨包含对我的问题生效的解决方法

解决办法:

  1. 原程序
//源程序
g_hInstance = ::LoadLibrary(L"dll文件名");
//结果
g_hInstance == NULL
  1. 使用GetLastError()进行查错,与参考1中引文的错误代码表对照
//源程序
g_hInstance = ::LoadLibrary(L"dll文件名");
DWORD dwError = 1;
dwError = GetLastError();
//结果
dwError == 0;//操作失败 返回错误代码0  系统内存不够,可执行文件被破坏或调用非法
  1. 解决尝试1->使用参考2中的方法改正
//源程序
LoadLibraryEx(L"E:\\PYP_FStest\\Debug\\libDocEngine.dll", NULL, LOAD_WITH_ALTERED_SEARCH_PATH);//ATTENTION!要用双斜杠 不然会被认为是转义字符!
//结果
仍然为NULL
  1. 解决尝试2
//将大项目Debug目录下的所有文件,而不只是直接需要的一个dll和一个lib都粘贴到Demo的Debug目录下
//成功
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: loadlibrary是Matlab的一个函数,用于动态链接库的加载。如果出现错误,可能是因为动态链接库的路径不正确,或者动态链接库不兼容当前的Matlab版本。需要确保路径正确,并且动态链接库版本与Matlab版本匹配。 ### 回答2: 在使用Matlabloadlibrary函数时,有时会出现错误。以下是一些常见的错误和解决方法: 1.错误信息:"The specified module could not be found." 解决方法:这可能是由于库文件路径不正确引起的。请确保库文件的路径是正确的,并在loadlibrary函数正确指定。 2.错误信息:"Unable to load one or more of the requested types." 解决方法:这可能是由于库文件缺少一些类型定义引起的。请确保库文件包含所有需要的类型定义,并在loadlibrary函数正确指定。 3.错误信息:"Invalid MEX-file 'filename': The specified procedure could not be found." 解决方法:这可能是由于使用了错误的函数名引起的。请确保在loadlibrary函数指定的函数名称是正确的,并且与库文件的函数名称完全匹配。 4.错误信息:"Undefined function or variable 'libraryname'." 解决方法:这可能是由于没有正确加载库文件引起的。请确保已正确加载库文件,并在loadlibrary函数使用正确的库文件名称。 总之,大多数loadlibrary函数的错误都由于路径问题、类型定义问题、函数名称不匹配或库文件未加载等原因引起。正确解决这些问题需要仔细检查代码,并确保正确地指定相关参数。 ### 回答3: loadlibrary 是 MATLAB 一个用于动态链接库加载的函数,使用它可以加载外部 DLL 或者共享对象库,将其作为 MATLAB 的一个函数库来使用,从而提高 MATLAB 的功能性。然而,在使用 loadlibrary 的过程,有时候会出现一些错误,我们需要找到相应的解决方法。 1. 错误信息:Could not load the DLL xxxx.dll 这个错误常常是由于要加载的 DLL 文件或者其依赖的库文件没有加到系统 PATH 环境变量里面所引起的。解决这个问题的方法就是找到所需要的 DLL 或者库文件的路径,然后在 MATLAB 添加路径。可以使用 addpath 函数或者 Set Path 工具箱来解决问题。 2. 错误信息:Undefined function or variable 'libname' 当你调用 loadlibrary 的时候,你需要指定一个调用 DLL 的别名,这个别名在后面你调用 DLL 的时候会用到。很多时候这里写错了别名,或者忘记给代表这个别名的字符串变量赋值了。这里的解决方法就是检查你写的这个别名是否正确,并且确认代表这个别名的字符串变量已经赋值。 3. 错误信息:The system cannot find the specified file 这个错误是由于 loadlibrary 所指定的 DLL 文件无法被找到,常常是由于 DLL 文件不存在,或者路径有误所引起。解决这个问题的方法就是找到正确的 DLL 文件的路径,或者确认 DLL 文件已经正确放置。 4. 错误信息:Cannot open include file 'header.h' 这个错误是由于要加载的 DLL 依赖的头文件没有在 MATLAB 被找到所引起的。解决这个问题的方法就是找到正确的头文件路径,然后在 MATLAB 添加路径。同样地,你可以使用 addpath 函数或者 Set Path 工具箱来解决问题。 总之,错误使用 loadlibrary 的情况可能很复杂,但这些解决方法通常适用于绝大部分要出现的错误。如果你的问题不在上面列举的范畴内,你也可以查阅 MATLAB 的文档或者支持论坛以获得更详细的解决方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值