engOpen返回Null

时间:2011-07-20 16:24:13

标签: c++ matlab engopen

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

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

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

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

谢谢!!!

2 个答案:

答案 0 :(得分:2)

如果你看一下它所说的engOpen文档:

在Windows系统上,engOpen打开一个到MATLAB的COM通道。您在安装期间注册的MATLAB软件开始运行。如果在安装期间未注册,则可以在命令行中输入命令:

matlab /regserver

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

答案 1 :(得分: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