C++ C++;matlab引擎c++;回调函数

C++ C++;matlab引擎c++;回调函数,c++,matlab,matlab-engine,C++,Matlab,Matlab Engine,我正在写一个应用程序,需要有一些事情做的matlab引擎。但是,在matlab脚本中,我需要一些回调函数。在MATLAB脚本中创建回调函数是否可以返回到C++函数?免责声明:我从未亲自测试过这种方法 您可以通过使用Matlab builder NE将Matlab代码编译为COM组件来实现这一点。 此组件将发送COM事件,您的应用程序将订阅这些事件。 请参阅Matlab Builder NE文档中的“向COM对象添加事件”部分 您可以在此处阅读有关COM的信息: 如果C++回调函数可以将所有数据作

我正在写一个应用程序,需要有一些事情做的matlab引擎。但是,在matlab脚本中,我需要一些回调函数。在MATLAB脚本中创建回调函数是否可以返回到C++函数?

免责声明:我从未亲自测试过这种方法 您可以通过使用Matlab builder NE将Matlab代码编译为COM组件来实现这一点。
此组件将发送COM事件,您的应用程序将订阅这些事件。
请参阅Matlab Builder NE文档中的“向COM对象添加事件”部分

您可以在此处阅读有关COM的信息:

如果C++回调函数可以将所有数据作为输入参数,那么你可以创建一个MEX文件,并从C++函数调用的Matlab函数调用它。或者你的用例更复杂?哈,我喜欢这样。不能说我曾经从引擎函数调用调用过mex函数。您可能应该尽量避免从mex内部调用任何新的引擎函数,否则整个宇宙可能会崩溃。正如Itamar指出的,您的mex“回调”显然无法访问调用函数的存储。如果你需要这个,你的引擎功能可能会返回并被召回。对于学校的项目,我们必须创建一个应用程序,在我们的例子中是一个C++游戏,应该用手势控制。然而,手势识别部分是在MatLab中完成的(这是一项要求),这或多或少是一个单独的应用程序。目前我正在编写需要发送到C++的数据到MatLab的队列中,C++应用程序只在队列中有任何元素时检查每个更新周期,但是我希望有一个更优雅的解决方案。你能提供更多的细节吗?你想从Matlab中运行的C++代码是什么?它的目的是什么?Matlab应该让C++应用程序知道发生了一个事件。正如我之前所说,我们的应用程序是一个带有手势控制的游戏。因此,我们需要捕获和处理网络摄像头数据,而不是使用键盘和鼠标事件。这部分是在MatLab中完成的。但是,MatLab应该让应用程序知道它已经识别了手势以及应用程序应该执行的动作。最好是,我想用MATLAB调用一个C++函数,它可以改变游戏中的一些变量(例如更新字符的速度)。谢谢你的回答。我已经担心这是唯一的方法,我没有使用COM的经验,也没有时间学习COM。但我有时间的时候会调查的@Tiddo,如果你考虑在C语言中编写你的主要应用程序,COM将是无痛的。应用程序是对我们已经用C++编写的应用程序的一个小小的修改。这个应用程序是为一门计算机科学课程设计的,我们的主要关注点应该是图像识别部分,所以我认为不值得我们花时间重写整个应用程序。然而,我会记住这一点,为我的下一个项目!