以Matlab R2008a为例讲述VC和Matlab的集成方法: 1. 如何集成 用Matlab自带的mcc命令将Matlab源程序编译成库文件: mcc –l 生成lib和dll文件(用来集成) mcc –m 生成exe文件(可直接运行) -l参数生成的文件需要使用到其中的3个,分别是: .h 头文件 .lib 静态链接库 .dll 动态链接库 Matalb中的一些库函数不支持mcc命令,可先用-m参数生成exe文件进行测试,以确保集成的程序可以正常运行。 2. 如何处理Matlab的输出 Matlab程序在命令行窗口中的输出可以进行重定向。编写新的输出处理函数(包括打印信息和错误信息),以取代Matlab默认的处理函数,然后将该函数传递给编译得到的初始化函数XXXInitializeWithHandler,该函数的原型为: <libname>InitializeWithHandler( mclOutputHandlerFcn err_handler, mclOutputHandlerFcn print_hander ); 默认的输出函数原型为: static int mclDefaultPrintHandler(const char *s); // s为需要处理的字符串, 返回处理的字符数 static int mclDefualtErrorHandler(const char *s); // 同上 3. 函数的调用顺序(structures of program that calls shard libraries) 1) mclInitializeApplication 2) <libname>Initialize OR <libname>InitializeWithHandler 3) mlf<Libname> 4) <libname>Terminate 5) mclTerminateApplication 1)和5)是Matlab提供的库函数,其余为mcc命令生成的函数。 4. 程序发布 若想集成的程序能够在没有安装Matlab的机器上运行,需要安装相应的Matlab Compiler Runtime。安装程序位于: %MATLAB%/R2008a/toolbox/compiler/deploy/win32/MCRInstaller.exe %MATLAB%是你的Matlab安装位置。