主要内容

共享库支持的限制金宝app

MATLAB金宝app支持C库例程

MATLAB®共享库接口只支持C库例程。金宝app大多数设计用于多种语言和平台的专业编写的库都工作得很好。有关更多信息,请参见在共享库中调用C函数

许多非商业类库或仅从c++测试过的类库具有不可用的接口,需要修改或接口层。在这种情况下,我们建议使用墨西哥人的文件

加载c++库

共享库接口不支持c++类或重载函数元素。金宝app使用MATLAB c++接口代替。有关更多信息,请参见c++库在MATLAB

限制使用printf函数

MATLAB不显示C的输出printf命令窗口。

一些字段

可以使用type来修改位字段声明int或一个等价的。例如,如果你的库在头文件中声明了以下内容:

int myfunction ();Struct mystructure{/*注意字段位的总和*/ unsigned field1:4;无符号field2: 4;};

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

int myfunction ();struct mystructure{/*要在MATLAB中操作的字段宽度为8位*/ /*一个char在所有支持的平台上是8位*/ char allfields;金宝app};

编辑源代码之后,重新生成库。然后可以使用MATLAB中的位掩码访问这两个字段中的数据。

枚举声明

字符定义枚举不受支持。金宝app在C语言中,一个字符常量,例如“一个”,自动转换为对应的数字(65)。MATLAB不转换常数。使用这种类型的枚举,通过替换来编辑头文件“一个”数字为65 (int8 (A) = = 65).例如,替换:

enum Enum1 {ValA = ' A ', ValB = ' B '};

:

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

然后重建图书馆。

工会不支持金宝app

不支持工会。金宝app作为一个变通方法,修改源代码,去掉联盟声明,并使用最大的替代。然后,根据需要编写MATLAB代码来解释结果。例如,编辑源代码并替换以下联合:

Struct mystruct {union {Struct {char byte1,byte2;};短词;};};

:

Struct mystruct{短单词;};

在基于小端序的机器上,byte1国防部(256)byte2f / 256,词= byte2 * 256 + byte1.编辑源代码之后,重新生成库。

编译器的依赖关系

头文件必须与平台上支持的编译器兼容。金宝app有关支持的编译器的最新列表,请参见金宝app金宝app支持和兼容编译器不能加载对其他编译器具有显式依赖关系的外部库。

限制使用指针

函数指针

共享库接口不支持使用函数指针的库函数。金宝app

多级指针

对多级指针和包含金宝app指针的结构的有限支持。不支持使用具有两级以上间接声明的输入、输出和结构成员。金宝app例如,* * * outp两倍翻译成doublePtrPtrPtr不支持。金宝app

不支持输入参数数量可变的函数金宝app

共享库接口不支持参数数量可变的库函数,用省略号表示(金宝app...).

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

相关的话题