问题原因:
如果程序中除了使用Matlab引擎,还调用了其他开源工具或者自己写的库,此时可能会出现同名动态库版本不同的问题,在Windows中,此时会在启动Matlab引擎时报错,静态库和动态库都会出现这样的问题。

解决方法:
如果不想过多调整代码,最简单的方法就是在matlab引擎启动之前,即Engine* ep = engOpen(NULL);之前,强行指定搜索目录,SetDllDirectoryW(L"D:\\MATLAB\\R2023b\\bin\\win64");里面的目录要填写自己matlab的安装目录,并增加头文件<Windows.h>
这样就可以在使用其他库的时候,依旧从程序搜索目录中搜索,运行Matlab引擎时就会从新的目录进行搜索,避免报错。并且最好把Matlab的运行内容,单独放在一个函数内,尽量避免两个冲突的内容出现在一个函数中。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删