|
  
该用户从未签到 - UID
- 43602
- 主题
- 17
- 帖子
- 1097
- 积分
- 4232
威望- 127
贝壳- 1274
贡献- 2886
|
本帖最后由 lijinfeng042 于 2010-12-4 16:22 编辑
看着教程,经过一天多的调试,终于看到结果了,先上图再说,哈哈
基本上,步骤和7.0变化还是不大,但是和6.5就比较大了~从网上查了不少经验可惜都没有2008a这个版本的 只有自己仿照
taohe大大的这篇帖子:http://forum.simwe.com/thread-801187-1-1.html以及matlabsky论坛的rocwoods的教程http://www.matlabsky.com/thread-10041-1-1.html,前文是VS2005+Matlab2007b 后面的是 Matlab2010b+VC++ 编译环境差别还是有一些的 经过反反复复错误和配置,终于可以看到结果啦
关键的还是那个 Matlab改变对编译成的dll文件内容有差别 2008a以后,Mathworks公司对mclmcrrt.h 和 mclmcr.h头文件做了修改,要求mclmcr.h必须include在mclmcrrt.h之后。
一 在Matlab里面配置编译dll环境
运行 mbuild -setup 设置好编译器后
二 执行编译命令
mcc -W cpplib:链接库名 -T link:lib m文件名 -C 或 mcc -l m文件名
三 建立一个VC项目,配置环境
①vc主界面进入project>Settings,点C/C++选项卡,Category选择Preprocessor,Additional include directories下填入如下matlab的路径
matlabroot\extern\include
②点“link”选项卡,Category选择General,在下面的Object/library modules 那栏的最后添加
libmyadd2.lib mclmcrrt.lib
③然后Category选择input,Additional library path下填写:
matlabroot\extern\lib\win32\microsoft
四 把编译好的文件复制进项目文件夹,把头文件*.h添加进工程
五. OK,可以写程序 编译了
经常错误的地方就是头文件的问题- #include "stdafx.h"
- #include <iostream>
- #include "libmyadd2.h" //编译函数的头文件
- #include "mclmcr.h" //区别2010版本 这里没有
- #include "mclcppclass.h" ////区别2010版本 这里没有
复制代码 mxArry的转换还是比较麻烦 mlf开头的函数调用也是.... 函数接口要求比较高 VB调用相对是简单不少
如果运行提示 无法找到mclmcrrt78.dll 不同版本matlab稍有不一样。就是没有安装MCRInstaller ,安装路径\toolbox\compiler\deploy\win32下找,缺少mclmcrrt78.dll建议重装下MCRInstaller.exe |
-
总评分: 威望 + 2
查看全部评分
|