【发布时间】:2019-06-27 21:15:32
【问题描述】:
我知道这之前已经发布过,但没有一个答案对我有用。
我正在使用 VISSIM v10 并制作了一个 DLL 文件来制作外部驱动程序模型。这运作良好。 但我想要的是在 MATLAB 中实现算法,并让 DLL 文件将数据发送到 Matlab,然后 Matlab 计算更新值并将它们发送回 DLL。然后 DLL 将该值发送回 VISSIM。
因此,连同 VISSIM 提供的用于创建 DLL 文件的 .vcproj、.h 和 .cpp 文件(我使用 Microsoft Visual Studio 19),我在同一个项目文件中添加了 engine.h 文件以便能够使用引擎例程,但它为 engOpen 和 engEvalString 提供了“未解析的外部符号”错误。我在一个新的 .cpp 文件中尝试了同样的事情,它可以工作,但我怎样才能将它链接到 VISSIM..
我已将所有库和包含目录中的属性和配置类型添加为 .dll。
Tettamanti 和 Varga (2012) 提到这是能够做到这一点的方法。但它现在不适合我。帮忙?
【问题讨论】:
-
如果您“知道之前已经发布过此内容,但没有一个答案有效”,请具体说明您看到的重复内容并告诉我们他们没有看到的原因帮助你。
-
"我已经添加了所有的库" ...但是你得到一个“未解决的外部符号错误”,它说你没有包含所有的库。另外,不要将
engine.h文件复制到您的项目中,将#include复制到您的源文件中,并让编译器在它所属的MATLAB 目录中找到它。像这样复制文件,以后肯定会让人头疼。 -
@AndrasDeak stackoverflow.com/q/37797403/6579908 这是我在该主题上看到的链接。答案提供了一个我还不愿意尝试的替代方案。我希望能够直接在 dll 和 Matlab 之间发送和接收数据。
-
@CrisLuengo 好的。会记住这一点。做过某事。但对错误没有影响。
-
请edit您的问题清楚地显示您添加到项目中的哪些库和包含目录。如果您不展示您的所作所为,我们无法告诉您您做错了什么。这就是安德拉斯早些时候写下该评论的原因。你需要展示你做了什么。见minimal reproducible example。
标签: matlab visual-c++ dll matlab-engine traffic-simulation