Вызов MATLAB из DLL

У меня есть DLL, написанная на C ++, которая используется для изменения параметров в VISSIM (симулятор трафика). В этой DLL я хотел бы вызвать MATLAB для отправки данных, выполнения функций MATLAB и возврата данных в DLL. Все это происходит за пределами IDE, поскольку VISSIM вызывает DLL по мере необходимости.

У меня есть (1.) работающая DLL, которая корректно изменяет параметры VISSIM, и (2.) работающая .cpp-программа, которая открывает движок MATLAB (эти две программы в настоящее время независимы друг от друга).

Как я могу объединить эти две программы, чтобы я мог вызвать механизм MATLAB из моей существующей DLL? Простое копирование-вставка программы движка .cpp MATLAB в DLL не сработало (я также изменил свойства проекта DLL, добавив необходимые библиотеки / каталоги / пути MATLAB, как это сделано в свойствах программы движка .cpp MATLAB).

Примечание. Программа движка .cpp MATLAB успешно собирается с помощью ‘stdafx.h’, но при копировании в DLL и последующем построении я получаю фатальную ошибку C1083: Не удается открыть файл включения: ‘stdafx.h’ Возможно, это проблема?

1

Решение

Это интересная дилемма, поскольку вы обычно запускаете MATLAB или какой-либо другой язык интерфейса COM для управления VISSIM, который будет загружать вашу пользовательскую DLL после начала симуляции. В вашем случае вы хотите, чтобы DLL запускала MATLAB после того, как VISSIM запустил симуляцию.

Я думаю, что ваш лучший подход — это использовать первый подход, стандартный способ общения, но иметь децентрализованный обмен данными. Одним из решений может быть запуск MATLAB VISSIM, который будет загружать DLL в начале симуляции. DLL может отправлять данные в базу данных, XML-файл, текстовый файл или другой контейнер данных. MATLAB должен отслеживать контейнер данных на наличие обновлений и отправлять их в VISSIM. Это будет немного медленно, но должно работать.

У меня есть другая идея, но она требует небольшого исследования. Свяжитесь со мной, если вы хотите обсудить. Последние семь месяцев я активно занимаюсь разработкой решений для VISSIM с использованием MATLAB, R, C ++ и C #.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]