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