1

我正在尝试在 Windows 7 上的 VS2010 中运行基本的 Matlab enginedemo.cpp,无论我做什么代码:

`if (!(ep = engOpen(""))) {
     fprintf(stderr, "\nCan't start MATLAB engine\n");
     return EXIT_FAILURE;
 }`

总是出错。

我的计算机上同时安装了 MatlabR2012b 和 MatlabR2012a,但我卸载了 MatlabR2012a,然后从我的路径变量中删除了对它的所有引用。

我正在运行 x64 MatlabR2012b 并设置了我的 VisualC++ Win 32 控制台应用程序。

我也已经将调试环境设置为:{MatlabRoot}\R2012b\extern\lib\win64\microsoft

C/C++->其他包含目录:{MatlabRoot}\R2012b\extern\include

链接器->常规- >附加库目录:{MatlabRoot}\R2012b\extern\lib\win64\microsoft

链接器->输入->附加依赖:libmx.lib;libmat.lib;libeng.lib

我的 Matlab 版本也已注册,因此不应该导致错误。

我搜索了有关此问题的其他一些 stackoverflow 问题,其中大多数似乎通过从路径变量中删除旧版本的 matlab 来解决他们的问题,但它对我没有用。

4

1 回答 1

0

您不能在 32 位应用程序中加载 64 位 DLL。如果要使用 64 位 matlab,则必须制作 64 位控制台应用程序。

您的 PATH 中应该有 {MatlabRoot}\bin\win64(有 libeng.dll 和其他 matlab 引擎库),以便您的应用程序可以在运行时找到 matlab 引擎库。

从命令提示符执行“matlab /regserver”。(从 Matlab 2012a 重新注册 COM 组件 - 可能不需要,但可以肯定)

希望这可以帮助。

于 2013-02-14T12:38:31.193 回答