Как использовать движок Matlab в моем коде (для вызова `engOpenSingleUse ()`)?
Я пытаюсь отправить простые строковые команды в движок Matlab.
Это мой код (в моем коде больше нет кода, связанного с API Matlab, кроме#include "engine.h"
линия):
void MatlabPlotter::DrawInMatlab() const
{
std::string PlotCommand = "x=[0 1 2 3 4 5];y=[0 1 4 9 16 25];plot(x, y);";
void * vpDcom = NULL;
int iReturnValue;
engOpenSingleUse(PlotCommand.c_str(), vpDcom, &iReturnValue);
}
Код компилируется и выполняется успешно без каких-либо ошибок компилятора или сообщений об ошибках во время выполнения. Откроется «Окно команд Matlab»; Я получаю экран, как показано ниже:
Как видите, командное окно пусто. На экране нет графического окна.
Когда я вручную ввожу команду в это окно, я получаю график без ошибок, как показано ниже:
Это официальная страница документации дляengOpenSingleUse()
функция:
http://www.mathworks.com/help/techdoc/apiref/engopensingleuse.html
я добавил<MatlabInstallationDir>\extern\lib\win64\microsoft\libeng.lib
библиотека в моем проекте (я собираю в конфигурации отладки x64).
я включен<MatlabInstallationDir>\extern\include\engine.h
заголовочный файл
Я набрал!matlab /regserver
команда в главном окне Matlab (как описано на странице документацииengOpenSingleUse()
функция), чтобы убедиться, что движок Matlab зарегистрирован в моей ОС.
Почему ничего не происходит, когда я звонюengOpenSingleUse()
функционировать?
Почему не появляется всплывающее окно при отправке строковой команды вPlotCommand
объект для построения сюжета?
Что я делаю неправильно?
ОС: Windows 7 Ultimate x64 SP1, последняя версия
IDE: Visual Studio 2010, (версия 10.0.40219.1 SP1Rel)
Matlab: 7,8,0 (R2009a)