共享库支持的限制万博1manbetx

MATLAB万博1manbetx支持C库例程

MATLAB®共享库接口只支持C库例程。万博1manbetx大多数专业编写的库都可以被多种语言和平台使用。有关更多信息,请参见调用共享库中的C函数

许多非商业的库或仅在c++中测试过的库都具有不可用的接口,并且需要修改或接口层。在这种情况下,我们建议使用MEX文件

加载c++库

共享库接口不支持c++类或重载函数元素。万博1manbetx使用MATLAB c++接口代替。有关更多信息,请参见C ++库

限制使用printf功能

MATLAB不显示C的输出printf函数指向命令窗口。

一些字段

可以使用type修改位字段声明INT或等价物。例如,如果你的图书馆在其头文件中声明如下:

int myfunction ();注意字段的和位*/无符号字段d1:4;无符号field2: 4;};

编辑头文件,并将其替换为:

int myfunction ();结构MYSTRUCTURE {/ *场8个位宽到MATLAB中* / / * A炭被操纵为在所有支持平台* /焦炭allfields 8位;万博1manbetx};

编辑源代码之后,重新构建库。然后可以使用MATLAB中的位屏蔽来访问这两个字段中的数据。

enum声明

字符定义枚举不受支持。万博1manbetx在C语言中,一个字符常量,例如“一个”,则自动转换为其数值等效(65)。MATLAB不转换常数。使用这种类型的枚举,通过替换来编辑头文件“一个”编号65 (int8 (A) = = 65)。例如,替换:

枚举Enum1 {VALA = 'A',值Valb = 'B'};

:

enum Enum1 {ValA = 65, ValB = 66};

然后重建库。

工会不支持万博1manbetx

工会不受支持。万博1manbetx作为一种变通方法,修改源代码,去掉联盟声明并将其替换为最大的替代方案。然后,根据需要编写MATLAB代码来解释结果。例如,编辑源代码并替换下面的union:

{char byte1,byte2;};短词;};};

:

短词;};

在基于little-endian的机器上,字节1MOD(F,256),字节2f / 256词= byte2 * 256 + byte1。编辑源代码后,重建库。

编译器的依赖关系

头文件必须与平台上支持的编译器兼容。万博1manbetx有关受支持的编译器的最新列表,请参阅万博1manbetx万博1manbetx支持和兼容的编译器你可以不加载与其它编译器显式依赖外部库。

限制使用指针

函数指针

共享库接口不支持使用函数指针的库函数。万博1manbetx

多级指针

对多级指针和包含万博1manbetx指针的结构的有限支持。不支持使用超过两个间接层声明的输入和输出以及结构成员。万博1manbetx例如,* * * outp两倍翻译成doublePtrPtrPtr不支持。万博1manbetx

不支持输入参数数目可变的函数万博1manbetx

共享库接口不支持参数数量可变的库函数,参数数量由省略号(万博1manbetx)。

您可以在原型文件中创建多个别名函数,每个别名函数对应用于调用该函数的参数集。有关更多信息,请参见MATLAB原型文件

相关话题