1

当我尝试从我的 C++ 代码调用 Matlab 函数时遇到问题。

当我调用 engOpen 时,它总是返回 NULL。这是代码:

Engine *m_pEngine;
m_pEngine = engOpen(NULL);
if(m_pEngine == NULL)
{
   cout << "Error" << endl;
   exit(1);
}

有人知道如何解决这个问题吗?

谢谢 !!!

4

2 回答 2

2

如果您查看engOpen文档,它会说:

在 Windows 系统上,engOpen 打开一个到 MATLAB 的 COM 通道。您在安装过程中注册的 MATLAB 软件将启动。如果安装时没有注册,可以在命令行输入命令:

matlab /regserver

我不确定这是你的问题,但似乎值得一试。

于 2011-07-20T16:35:53.500 回答
0

您需要以管理员模式启动 Matlab 右键单击​​ Matlab 图标并选择“以管理员身份运行”

即使您在管理期间注册了 Matlab,您也应该检查这一点,如果它当前没有注册为 COM 链接,那么它将不支持 engOpen。

engOpen("") 也应该工作

这还不是全部,对于 IDE 配置(或链接器和包含选项,如果您使用命令行编译器),您必须牢记某些模块。

这是解决这些问题的 Matlab 管理页面。除了 COM 链接问题。

https://www.mathworks.com/matlabcentral/answers/100603-how-can-i-compile-a-matlab-engine-application-using-microsoft-visual-studio-9-0-or-10-0

于 2021-01-29T19:22:46.530 回答