VS调用matlab生成的dll

2018-12-29 18:51

VS调用matlab生成的dll

一、 编程环境

? VS2010 professional 32位 ? Matlab2010b 32位

二、 matlab程序转dll 1. matlab程序简单实例

2. 转dll步骤

? 命令行中输入:mbuild–setup,再选择编译的环境;

? 命令行输入:mcc –W cpplib:libname–T link:libfilename.m;

? 生成多个文件,有用的文件为libname.lib、libname.c、libname.dll,切记libname.cpp

只是参考用的,不要加入到VS项目里面。

三、 VS工程建立 1、包含库及链接库设置

? ? ? ?

包含目录中添加:D:\\matlab\\extern\\include;

库目录中添加:D:\\matlab\\extern\\lib\\win32\\microsoft;

链接器-常规-附加库目录中添加:D:\\matlab\\extern\\lib\\win32\\microsoft; 链接器-输入-附加依赖项添加

libmyadd.lib;mclmcr.lib;libeng.lib;libmat.lib;libmex.lib;libmx.lib;mclmcrrt.lib;切记,一定要把libmyadd.lib加入;

2、调用matlab的dll程序实例

四、 总结

1、 刚开始用自己的笔记本(环境是win7 64位),matlab生成dll后在VS2010中调

用,编译一直提示连接错误,主要是很多内部函数(尾部添加_proxy)链接失败,可能是VS项目设置的WIN32原因,而且matlab/extern/lib里面win32的lib没有mclmcrrt.lib文件,所以给VS更新X64功能,后来没成功,转到单位的32机器上面。

2、 在win7 32位机器上面直接编译成功,但是运行会报错,我调试后发现运行到

matlab的dll核心程序

if (mclcppFeval(inst, name, nargout, (void**)&lhs, (void*)((array_buffer*)rhs)) == MCLCPP_ERR) mwException::raise_error();

时报错,通过几个小时的分析,认为没有把libmyadd.lib加入到附加依赖项中,但是加上后会提示发现重定义字符,预算把libmyadd.cpp移除,再编译后成功运行。


VS调用matlab生成的dll.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浅谈柱塞泵生产厂家,柱塞泵实力供应商有哪些?柱塞泵介绍

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: