主要内容

调用C共享库

使用一个或多个马铃薯草®编译器SDK™在C应用程序中生成的C共享库:

  1. 包括应用程序中每个库的生成的头文件。

    每个生成的共享库都有一个名为的关联头文件libname..h

  2. 初始化matlab运行时通过呼叫代理层mclmcriinitialize.

  3. mclRunMain在您的驱动程序代码中调用C函数,该函数使用MATLAB生成的共享库。

    mclRunMain ()提供了一种方便的跨平台机制,用于将MATLAB代码的执行包装在共享库中。

    警告

    不要使用mclRunMain ()苹果电脑如果您的应用程序带来了自己的全图形环境。

  4. 声明变量和进程输入参数。

  5. 初始化matlab运行时通过致电Mclinitializapplication功能。此功能设置全局matlab运行时状态和使能的构建matlab运行时实例。

    打电话给mclinitializapplication()每个应用程序执行一次函数。它必须在任何其他MATLAB API函数之前调用。您可以将应用程序级选项传递给该函数。mclinitializapplication()返回一个布尔状态码。

    警告

    避免签发cd在调用之前从驱动程序应用程序的命令Mclinitializapplication.否则可能会导致失败matlab运行时初始化。

  6. 对于您在应用程序中包含的每个C共享库,请调用库的初始化函数。

    初始化函数执行库本地初始化。它取消了可部署的存档并启动amatlab运行时实例,并提供执行该归档文件中的代码所需的信息。命名标准库初始化函数libname.初始化().此函数返回布尔状态代码。

    请注意

    在Windows上®,如果您想让您的共享库调用Matlab共享库,Matlab库初始化功能(例如, initialize,终止,mclinitialize,mclterminate)不能在您的共享库中调用dllmain(dll_attach_process)称呼。这适用中间共享库是否含蓄地或明确加载。拨打电话dllmain()

  7. 调用库中的函数,并处理结果。(这是课程的主体部分。)

    请注意

    如果您的驱动程序应用程序显示MATLAB图形Windows,请包括呼叫mclwaitforfigurigutie.在调用之前终止功能和mclTerminateApplication在以下两个步骤中。

  8. 当您的应用程序不再需要给定库时,请调用库的终止函数。

    终止功能将与库相关联的资源释放matlab运行时实例。图书馆终止函数命名libname.终止().一旦库被终止,该库导出的函数就不能在应用程序中再次调用。

    警告

    发布A.初始化打电话给A.<自由>终止调用(无论库是否相同)会导致不可预知的结果。

  9. 当您的申请不再需要调用任何共享库时,请致电mclTerminateApplicationAPI函数。

    此功能可通过以下方式释放应用程序级资源matlab运行时.一旦调用这个函数,就不能再调用应用程序中的共享库了。

  10. 清理变量,关闭文件和退出。

以下示例来自矩阵说明了所有上述步骤。

从C驱动程序应用程序调用C共享库

使用时的限制马铃薯草功能LoadLibrary.

您不能使用MATLAB功能LoadLibrary.在Matlab中加载C的C C共享库Matlab Compiler SDK.

有关使用的更多信息LoadLibrary.,请参阅在已部署应用程序中调用共享库

也可以看看

||||

相关话题