engOpen возвращает Null
У меня проблема, когда я пытаюсь вызвать функцию Matlab из моего кода C++.
Когда я вызываю engOpen, он всегда возвращает NULL. Вот код:
Engine *m_pEngine;
m_pEngine = engOpen(NULL);
if(m_pEngine == NULL)
{
cout << "Error" << endl;
exit(1);
}
Кто-нибудь знает, как это решить?
Спасибо!!!
2 ответа
Если вы посмотрите на engOpen
В документации сказано:
В системах Windows engOpen открывает COM-канал для MATLAB. Запускается программное обеспечение MATLAB, которое вы зарегистрировали во время установки. Если вы не зарегистрировались во время установки, в командной строке вы можете ввести команду:
matlab /regserver
Я не уверен, что это ваша проблема, но, похоже, стоит попробовать.
вам нужно запустить Matlab в режиме администратора, щелкнуть правой кнопкой мыши значок Matlab и выбрать «запуск от имени администратора»,
Вы должны проверить это, даже если вы зарегистрировали Matlab во время администрирования, если он в настоящее время не зарегистрирован как COM-ссылка, он не будет поддерживать engOpen.
также должен работать engOpen("")
Это еще не все, что нужно сделать, есть определенные моды, которые вы должны иметь в виду для конфигурации IDE (или компоновщик и параметры включения, если вы используете компилятор командной строки).
Вот страница администратора Matlab для решения этих проблем. Помимо проблемы COM-ссылки.