控制MATLAB dll的c++代码

Controll of MATLAB dll from C++ code

本文关键字:c++ 代码 dll MATLAB 控制      更新时间:2023-10-16

我从c++运行MATLAB函数(dll)。这个函数得到一些参数和运行带有多次迭代的循环。是否有一种方法可以在c++代码中设置一些标志,并在MATLAB函数的每次迭代中检查它。如果在c++代码中将此标志设置为false(比如由另一个线程设置),MATLAB函数将打破循环并返回到c++代码

如果您可以修改c++和MATLAB代码(正如我们可以从问题中假设的那样),我认为最简单的方法是使用空文件作为事件的标志。如果其他线程可以创建文件,我们就说'event '。,可以很容易地在MATLAB函数中检查它的存在性:

if exist('event.flag','file')
    % do_something
end

确保包含第二个参数file,这将使exist运行得更快。

我相信这个解决方案比尝试使用任何全局变量要简单得多,而且不会出错。


如果您需要在运行时在MATLAB和其他进程之间交换一些数据,我建议使用MEMMAPFILE对象。查看文档,看看它是否适合您的情况。