使用一个或多个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库初始化函数(例如,
)无法从共享库中调用开始时(DLL_ATTACH_PROCESS)
调用。无论中间共享库是隐式加载还是显式加载,这都适用。在…之后打电话开始时()
.
调用库中的函数,并处理结果。(这是课程的主体部分。)
如果你的驱动程序显示MATLAB图形窗口,包括调用mclWaitForFiguresToDie
在调用之前终止
功能和mclTerminateApplication
在以下两个步骤中。
当应用程序不再需要给定的库时,调用该库的终止函数。
terminate函数释放与库关联的资源MATLAB运行时实例。命名库终止函数
.一旦库被终止,该库导出的函数就不能在应用程序中再次调用。库名
终止()
发出一个<自由>初始化
调用后<自由>终止
调用(无论库是否相同)会导致不可预知的结果。
当应用程序不再需要调用任何共享库时,调用mclTerminateApplication
API函数。
该功能释放应用程序级资源MATLAB运行时.一旦调用这个函数,就不能再调用应用程序中的共享库了。
清理变量,关闭文件并退出。
下面的例子来自matrix.c
说明了上面的所有步骤。
loadlibrary
不能使用MATLAB函数loadlibrary
在MATLAB中装入一个C共享库构建用MATLAB编译器SDK.
有关使用的更多信息loadlibrary
,请参阅在已部署应用程序中调用共享库(MATLAB编译器)。
mclInitializeApplication
|mclRunMain
|mclTerminateApplication
|mclWaitForFiguresToDie
|mclmcrInitialize