当我尝试从我的C ++代码调用Matlab函数时,我遇到了问题。
当我调用engOpen时,它总是返回NULL。 这是代码:
Engine *m_pEngine;
m_pEngine = engOpen(NULL);
if(m_pEngine == NULL)
{
cout << "Error" << endl;
exit(1);
}
有人知道如何解决这个问题吗?
谢谢!!!
答案 0 :(得分:2)
如果你看一下它所说的engOpen
文档:
在Windows系统上,engOpen打开一个到MATLAB的COM通道。您在安装期间注册的MATLAB软件开始运行。如果在安装期间未注册,则可以在命令行中输入命令:
matlab /regserver
我不确定这是你的问题,但似乎值得一试。
答案 1 :(得分:0)
您需要以管理员模式启动 Matlab 右键单击 Matlab 图标并选择“以管理员身份运行”
即使您在管理期间注册了 Matlab,您也应该检查这一点,如果它当前未注册为 COM 链接,则它将不支持 engOpen。
engOpen("") 也应该工作
这还不是全部,对于 IDE 配置(或链接器和包含选项,如果您使用的是命令行编译器),您必须牢记某些模块。
>这是解决这些问题的 Matlab 管理页面。除了 COM 链接问题。