【发布时间】:2013-01-25 05:27:33
【问题描述】:
我正在尝试从 MATLAB 工具包“oscmex”中执行一些示例代码。该工具包允许通过 MATLAB 使用 OSC 协议进行通信。我认为这个问题是不具体的;它应该适用于以这种方式设置的任何工具包。
撇开原因不谈,我在启动和运行工具包时遇到了一些简单的问题。该工具包没有任何文档。只是一组六个 DLL 文件(在一个目录中)和一组四个 MATLAB '.m' 示例代码文件(在另一个目录中)。我过去使用的每个工具包要么是内置工具包,要么具有直观(半自动)的安装过程。
下载工具包后,我尝试的第一件事是简单地运行一个“.M”示例代码。这失败了,因为代码的第一行包含函数 osc(),MATLAB(当前)无法识别该函数。
所以,我想也许我需要将“.M”文件移动到与 DLL 相同的文件夹中;也许 MATLAB 会看到 DLL 中的函数。没有骰子。
所以,我意识到我必须在启动时以某种方式将 MATLAB 链接到 DLL。我尝试将 DLL 添加到文件夹并在“pathdef.m”文件中添加一个条目。这也失败了。
我在某处读过我可以使用 loadlibrary() 函数加载 DLL 文件。因此,我尝试对 DLL 文件执行此操作。这在第一个文件上失败了:
>> loadlibrary('osc_free_address.dll')
Error using loadlibrary>lFullPath (line 587)
Could not find file osc_free_address.h.
我的选项开始用完了...如何启动并运行这组 DLL?
【问题讨论】:
-
看起来它正在寻找 dll 的头文件。您是否普遍熟悉
mex文件和共享库之间的区别?如果没有,我会熟悉如何从 matlab 调用本机代码:mathworks.com/help/matlab/matlab_external/…; mathworks.com/help/matlab/matlab_external/…。此外,请确保在您使用的代码中为正确的架构编译了 dll。 -
很遗憾,工具包中没有包含头文件。该工具包可以在这里找到:sourceforge.net/projects/oscmex