MATLAB中加载dll,错误使用loaddefinedlibrary,找不到指定的模块的解决方案

原因

启动目标dll需要依赖其他的dll(比如VS2019开发环境的运行时dll),matlab不能找到这些依赖项

解决办法

重新编译dll以摆脱对VS2019的依赖:

  1. 打开VS2019的项目属性页
    MATLAB中加载dll,错误使用loaddefinedlibrary,找不到指定的模块的解决方案_第1张图片
    2.将“运行库”选为多线程
    3.重新编译dll

MATLAB代码

目标dll名称为:VTK_IsosurfacePaser_DLL_2D_Basic.dll

%加载dll
try
    unloadlibrary VTK_IsosurfacePaser_DLL_2D_Basic
catch
end
loadlibrary("VTK_IsosurfacePaser_DLL_2D_Basic","VTK_IsosurfacePaser_DLL_2D_Basic.h")
% 如果需要运行dll,执行以下代码:
calllib('VTK_IsosurfacePaser_DLL_2D_Basic','run') %run是dll中的函数

头文件VTK_IsosurfacePaser_DLL_2D_Basic.h的内容如下,目的是给matlab说明dll里面有哪些函数

#ifndef DLL_H
#define DLL_H
#ifdef __cplusplus
extern "C"
{
#endif
 __declspec(dllexport) void run();//指明dll中的函数
#ifdef __cplusplus
}
#endif
#endif

你可能感兴趣的:(解决方案,matlab,visual,studio,c++,经验分享)