如何在32位和64位应用程序之间进行交互

时间:2018-05-16 07:56:55

标签: matlab 32bit-64bit

我正在Matlab中开发和应用,它依赖于外部32位库来处理经常调用并需要快速响应的特定任务。这些库仅提供32位。 由于最近的Matlab版本只有64位,我需要将整个应用程序的开发保持在过时的Matlab版本中。我正在寻找克服这种限制的方法,并且有两个想法。

首先,我检查了从64位Matlab调用32位库的方法,但我被告知这是不可能的,或者需要复杂的界面开发,我不能假设。

然后我想到将我的应用程序分成两个,一个在32位Matlab中使用32个库,另一个用于64位Matlab中的所有其余功能。我需要在它们之间共享数据,只需几个数字,但它经常发生,我需要快速响应(<1秒)。

我尝试使用两个应用程序读写的文本文件。主应用程序将在那里更改一个数字,另一个应用程序将连续(例如每0.1秒)在文本文件中检查此值以了解它应该何时开始。

此解决方案有效,但我想知道是否有更有效的方法,至少避免频繁访问硬盘驱动器上的文本文件,这可能会限制机器的性能甚至影响耐用性。也许某些东西只存储在RAM中?

有什么建议吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

在两个不同位数的应用程序之间交换数据的最快方法是使用命名管道。请参阅https://msdn.microsoft.com/en-us/library/windows/desktop/aa365590

管道服务器调用CreateNamedPipe API函数。客户端可以像任何其他文件一样打开管道。