我需要在Matlab中使用一个由dll文件定义的函数。我找到了一个示例,那个人将一个dll转换为mexw32文件,但我不知道该如何做。我尝试使用loadlibrary,但它没有创建任何文件。我应该怎么做呢?
我需要在Matlab中使用一个由dll文件定义的函数。我找到了一个示例,那个人将一个dll转换为mexw32文件,但我不知道该如何做。我尝试使用loadlibrary,但它没有创建任何文件。我应该怎么做呢?
loadlibrary
是MATLAB实现的FFI服务,这是一种调用外部共享库函数的机制。它涉及在C类型和其等效的MATLAB数据类型之间进行转换,以传递数据。
MEX文件也是一种动态链接库(扩展名为.mex*
),可以直接在MATLAB中作为常规函数运行,而不需要任何特殊语法。
区别在于它有一个特定的网关例程叫做mexFunction
,它将输入和输出都作为mxArray
类型接收。mxArray
是在mex.h
头文件中定义的不透明类型,它是所有MATLAB数据的基本类型。通常使用MEX库API中的函数来操作这些数据。