MATLAB®共享库接口只支持C库例程。万博1manbetx大多数专业编写的库都可以被多种语言和平台使用。有关更多信息,请参见调用共享库中的C函数。
许多非商业的库或仅在c++中测试过的库都具有不可用的接口,并且需要修改或接口层。在这种情况下,我们建议使用MEX文件。
共享库接口不支持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中的位屏蔽来访问这两个字段中的数据。
字符
定义枚举
不受支持。万博1manbetx在C语言中,一个字符
常量,例如“一个”
,则自动转换为其数值等效(65)。MATLAB不转换常数。使用这种类型的枚举
,通过替换来编辑头文件“一个”
编号65 (int8 (A) = = 65
)。例如,替换:
枚举Enum1 {VALA = 'A',值Valb = 'B'};
:
enum Enum1 {ValA = 65, ValB = 66};
然后重建库。
工会不受支持。万博1manbetx作为一种变通方法,修改源代码,去掉联盟
声明并将其替换为最大的替代方案。然后,根据需要编写MATLAB代码来解释结果。例如,编辑源代码并替换下面的union:
{char byte1,byte2;};短词;};};
:
短词;};
在基于little-endian的机器上,字节1
是MOD(F,256)
,字节2
是f / 256
和词= byte2 * 256 + byte1
。编辑源代码后,重建库。
头文件必须与平台上支持的编译器兼容。万博1manbetx有关受支持的编译器的最新列表,请参阅万博1manbetx万博1manbetx支持和兼容的编译器。你可以不加载与其它编译器显式依赖外部库。
共享库接口不支持使用函数指针的库函数。万博1manbetx
对多级指针和包含万博1manbetx指针的结构的有限支持。不支持使用超过两个间接层声明的输入和输出以及结构成员。万博1manbetx例如,* * * outp两倍
翻译成doublePtrPtrPtr
不支持。万博1manbetx
共享库接口不支持参数数量可变的库函数,参数数量由省略号(万博1manbetx…
)。
您可以在原型文件中创建多个别名函数,每个别名函数对应用于调用该函数的参数集。有关更多信息,请参见MATLAB原型文件。