调用一个C共享库
使用一个或多个MATLAB®编译器SDK™在你的C应用程序中生成C共享库:
在应用程序中包含为每个库生成的头文件。
每个生成的共享库都有一个关联的头文件
.库名
.h初始化MATLAB运行时通过调用代理层
mclmcrInitialize
.使用
mclRunMain
在使用MATLAB生成的共享库的驱动程序代码中调用C函数。mclRunMain ()
提供了一种方便的跨平台机制,用于在共享库中包装MATLAB代码的执行。谨慎
不要使用
mclRunMain ()
在Mac如果您的应用程序提供了自己的完整图形环境。声明变量和处理输入参数。
初始化MATLAB运行时通过调用
mclInitializeApplication
函数。这个函数设置全局变量MATLAB运行时状态并使构造成为可能MATLAB运行时实例。调用
mclInitializeApplication ()
每个应用程序执行一次。它必须在任何其他MATLAB API函数之前调用。您可以将应用程序级别的选项传递给该函数。mclInitializeApplication ()
返回一个布尔状态码。谨慎
避免发行
cd
从驱动程序应用程序调用之前的命令mclInitializeApplication
.如果不这样做,可能会导致失败MATLAB运行时初始化。对于应用程序中包含的每个C共享库,调用该库的初始化函数。
初始化函数执行库本地初始化。它解包可部署归档文件并启动MATLAB运行时实例,使用执行该存档中的代码所需的信息。库初始化函数被命名
.这个函数返回一个布尔状态码。库名
初始化()请注意
在Windows上®,如果您想让您的共享库调用MATLAB共享库,则MATLAB库初始化函数(例如,
的过程中不能从共享库调用初始化, 终止,mclInitialize, mclTerminate 开始时(DLL_ATTACH_PROCESS)
调用。无论中间共享库是隐式加载还是显式加载,这都适用。把电话放在开始时()
.调用库中的函数,并处理结果。(这是程序的主体。)
请注意
如果您的驱动程序应用程序显示MATLAB图形窗口,请包含对
mclWaitForFiguresToDie
在致电终止
功能和mclTerminateApplication
在下面两个步骤中。当应用程序不再需要给定的库时,调用该库的终止函数。
terminate函数释放与库相关的资源MATLAB运行时实例。库终止函数被命名
.一旦终止了库,就不能在应用程序中再次调用库导出的函数。库名
终止()谨慎
发出一个
<自由>初始化
通话结束后打电话<自由>终止
调用(无论库是否相同)都会导致不可预知的结果。当应用程序不再需要调用任何共享库时,请调用
mclTerminateApplication
API函数。属性所使用的应用程序级资源MATLAB运行时.一旦调用此函数,就不能再对应用程序中的共享库进行调用。
清理变量,关闭文件,退出。
下面的示例来自matrix.c
说明上述所有步骤。
使用限制MATLAB函数loadlibrary
不能使用MATLAB函数loadlibrary
在MATLAB中加载一个C共享库构建MATLAB编译器SDK.
有关使用的更多信息loadlibrary
,请参阅在部署的应用程序中调用共享库.
另请参阅
mclmcrInitialize
|mclRunMain
|mclInitializeApplication
|mclTerminateApplication
|mclWaitForFiguresToDie