从DLL调用MATLAB 我有一个用C++编写的DLL,用于修改VISSIM(交通模拟器)中的参数。在这个DLL中,我想调用MATLAB发送数据,执行MATLAB函数,并将数据返回到DLL。这一切都发生在IDE之外,因为VISSIM会根据需要调用DLL

从DLL调用MATLAB 我有一个用C++编写的DLL,用于修改VISSIM(交通模拟器)中的参数。在这个DLL中,我想调用MATLAB发送数据,执行MATLAB函数,并将数据返回到DLL。这一切都发生在IDE之外,因为VISSIM会根据需要调用DLL,c++,matlab,dll,ide,matlab-engine,C++,Matlab,Dll,Ide,Matlab Engine,我有(1.)一个可以正确修改VISSIM参数的工作DLL和(2.)一个可以打开MATLAB引擎的工作.cpp程序(这两个程序目前是分开的,彼此独立) 如何组合这两个程序,以便从现有的DLL调用MATLAB引擎?将.cpp MATLAB引擎程序简单复制粘贴到DLL中不起作用(我还修改了DLL项目属性,以包括必要的MATLAB库/目录/路径,就像在.cpp MATLAB引擎程序属性中所做的那样) 注意:.cpp MATLAB引擎程序使用“stdafx.h”成功构建,但当复制到DLL并构建时,我收到致

我有(1.)一个可以正确修改VISSIM参数的工作DLL和(2.)一个可以打开MATLAB引擎的工作.cpp程序(这两个程序目前是分开的,彼此独立)

如何组合这两个程序,以便从现有的DLL调用MATLAB引擎?将.cpp MATLAB引擎程序简单复制粘贴到DLL中不起作用(我还修改了DLL项目属性,以包括必要的MATLAB库/目录/路径,就像在.cpp MATLAB引擎程序属性中所做的那样)


注意:.cpp MATLAB引擎程序使用“stdafx.h”成功构建,但当复制到DLL并构建时,我收到致命错误C1083:无法打开包含文件:“stdafx.h”可能这是个问题?

这是一个有趣的难题,因为您通常会运行MATLAB或其他COM接口语言,控制VISSIM,一旦模拟开始,它将加载自定义DLL。在您的情况下,您希望DLL在VISSIM开始模拟后运行MATLAB

我认为您最好的方法是使用第一种方法,即标准的通信方式,但具有分散的数据交换。一种解决方案可能是让MATLAB启动VISSIM,在模拟开始时加载DLL。DLL可以将数据发送到数据库、XML文件、文本文件或其他数据容器。MATLAB需要监控数据容器的更新并发送到VISSIM。这将是一个有点慢,但应该工作


我有另一个想法,但它需要一些研究。如果您想讨论,请与我联系。在过去七个月里,我一直在使用MATLAB、R、C++和C语言积极开发VISSIM的解决方案。

< P>这是一个有趣的难题,因为你通常会运行Matlab或其他COM接口语言来控制VISSIM,VISSIM一旦模拟开始就加载你的自定义DLL。在您的情况下,您希望DLL在VISSIM开始模拟后运行MATLAB

我认为您最好的方法是使用第一种方法,即标准的通信方式,但具有分散的数据交换。一种解决方案可能是让MATLAB启动VISSIM,在模拟开始时加载DLL。DLL可以将数据发送到数据库、XML文件、文本文件或其他数据容器。MATLAB需要监控数据容器的更新并发送到VISSIM。这将是一个有点慢,但应该工作


我有另一个想法,但它需要一些研究。如果您想讨论,请与我联系。在过去七个月里,我一直在使用MATLAB、R、C++和C语言积极开发VISSIM的解决方案。

谢谢分享你的想法。因为我是一个初学者程序员,我很难理解接口架构。更详细的谈话会很有帮助。请查看我的个人资料以查看我的电子邮件,因为我找不到你的个人资料。谢谢分享你的想法。因为我是一个初学者程序员,我很难理解接口架构。更详细的谈话会很有帮助。请查看我的个人资料以查看我的电子邮件,因为我找不到你的。