matlab2012生成dll,64位win7下vc2010如何调用matlab2012a中生成的dll文件

本文说是原创,但核心部分是参考http://blog.sina.com.cn/s/blog_a5fdbf0101018n91.html(大家可以先看看这篇文章),在此再次感谢debug童鞋。debug童鞋的系统是 win7 32位 + vc2010 (32位编译器) + Matlab2012a  ,如果童鞋们win7是32位的话就不必看我的了,可以直接照debug童鞋的步骤做。我的系统是win7 64位,所以安装matlab 2012a的时候自动安装的64位,这里要注意vc2010和matlab的兼容性问题,现在大家都知道了我的配置:win7 64位 +vc2010 (32位编译器) + Matlab2012a 。好的,不多说废话了,童鞋们,下面我们就开始了啊!

win7 64位上安装 R2012a 是自动安装64位的matlab ,然后生成动态链接库,所以vc2012必须采用的是64位的编译器,否则后面在执行程序会出现 模块X86和目标机X64 不符合的问题,或者出现 模块X64和目标机X86不符合的问题,这也是花了我一天的时间在网上找资料,并且不停的重装vc2012,最后才成功的!

要保证vc2010编译器是64位的,在安装vs2010是要选择visual C++选项,注意安装X64 Compliers and Tools,即打上勾,(这里想截图,但是不知道怎么上传不了图片,新人大家多多包涵哈),但是要注意,要把上面的Itanium Compliers and Tools前面的勾去掉,我就是没有把Itanium Compliers and Tools,后面才出现模块X86和目标机X64 不符合的问题,或者出现 模块X64和目标机X86不符合的问题,而且怎么改都不成功。(有兴趣的同学可以看看x64和IA64的区别),后面的安装步骤也就按常规步骤安装,这样vc2010中就有64位的编译器了。下面基本就比较简单了。

现在介绍matlabR2012a生成dll文件和配置vc2010的环境。debug童鞋已经讲的很清楚了,按照步骤可以一次成功,这里我就不啰嗦了。(其实我想把那儿的步骤全部粘贴过来,但是我是新手,不太会粘图片,所以还是麻烦大家翻到那个网址看原版啊,请包涵哈)。注意,对于64位系统的同学,你们的mclmcrrt.lib和mclmcr.lib是在(matlab安装路径)\extern\lib\win64\microsoft下,所以要将win32改成win64 。还有这里改正debug同学一个有问题的地方,就是在添加库目录的时候,只需要添加matlab的库目录,自己的目录是不需要添加的,如果这样做,三个文件中的.lib文件.h文件和.cpp文件放在一起,而.dll文件单独放在Debug文件中。这就是debug同学为什么说“最好是两个都添加”,其实只需要添加一个,他要添加两个是因为他没有把.lib文件和.h .cpp放在一起。

我对debug童鞋的一些没有讲明白的地方说明一下,因为刚建完工程的时候,大家是找不到Debug目录的,这时大家可以先建一个简单的工程(比如输出HelloWorld),先不执行,然后

1、右键项目-->属性-->链接器-->高级-->目标计算机(在右边的窗口),将此处改为MachineX64 (/MACHINE:X64)。

2、点击右上角的“配置管理器”-->活动平台解决方案-->下拉-->新建-->在下拉框里面选择X64,再点击确定。

在平台选项中选择x64。

然后运行一下HelloWorld程序,大家在自己的项目目录中会看到一些Debug文件,大家真正的Debug文件(包含可执行程序)是x64文件中的那个,然后将你们的三个文件放进相应的目录。

然后将debug童鞋那篇文章的.cpp程序覆盖你的HelloWorld.cpp源程序,然后执行,等一会儿就能得到和debug童鞋一样的结果。

后记:我的电脑是64位win7,在网上花了很长时间找用matlab生成Dll和vc连接的资料,网上确实有很多资料,但是由于现在系统各种不一样,各种不兼容,本来对一个新工具不熟悉,碰上一些错误总是不知道为什么,不知道是自己步骤弄错误还是环境有问题,别人明明能成功,而自己照着别人的方法就是缺这文件或者缺那文件,哎,反正各种悲剧。但是在找错误的过程中,我们一直在找各种关于此软件的资料,而且也不知道某些方法对于自己的环境正不正确,就是在多次各种尝试中,我们慢慢地了解到这些软件的一些信息,当成功配置好环境后真的发现好开心!我配置这个环境整整用了一天半,昨天晚上10点多看到debug同学的文章,忽然充满了信心,后来自己按照步骤试了试,发现出问题了,晚上弄到12点还没有搞好。今天又继续弄,有人说vc2010没有64位的,只有32位的,但是可以扩展支持64位,我对这些东西又不太懂,后来又查了x64和IA64,发现我的vc平台中下拉框中是没有x64的,有IA64,所以就想到是不是在安装vc2010的时候如果同时安装Itanium Compliers and Tools和X64 Compliers and Tools,前者会把后者覆盖,后来重新安装vc2010,去掉Itanium Compliers and Tools前面的勾,结果再按照步骤就成功了。本来我想的是,如果还不成功,我就准备在虚拟机上装32位的win7,32位的matlab和32位的vc2010,但是我4G的内存有点虚啊。结果,幸福来的太突然,成功了。

ps:哎,新手感觉在CSDN上还不太会发博客,本来预想的搞篇图文并茂的博客,尽量减少读者的负担,但是新手能力有限,还不知道怎么发图,哎,请理解一个新手的无奈啊!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS/Linux 卸载MATLAB

rm -rf /usr/local/MATLAB/R2012arm /usr/local/bin/matlab /usr/local/bin/mcc /usr/local/bin/mex /usr/local/bin/mbuild

.NET中的正则表达式 (三)RegexCompilationInfo 类

RegexCompilationInfo 类 提供编译器用于将正则表达式编译为独立程序集的信息。 属性 IsPublic:获取或设置一个值,该值指示所编译的正则表达式是否具有公共可见性。 Name:获取或设置用于所编译的正则表达式的类型名称。 Namespace&#xff1a…

DOCKER - 容器抓包

https://help.aliyun.com/knowledge_detail/40564.html?spma2c4e.11153940.blogcont272172.10.b09e28a6AOdITp#Linux http://man7.org/linux/man-pages/man1/nsenter.1.html?spma2c4e.11153940.blogcont272172.9.b09e28a6AOdITp [转]待整理 nsenter nsenter 包含在绝大部分 L…

高仿QQ即时聊天软件开发系列之三登录窗口用户选择下拉框

上一篇高仿QQ即时聊天软件开发系列之二登录窗口界面写了一个大概的布局和原理 这一篇详细说下拉框的实现原理 先上最终效果图 一开始其实只是想给下拉框加一个placeholder效果,让下拉框在未选择未输入时显示一个提示字符串。由于Background对ComboBox无效&#xff0…

Nokia7610彩信设置

1. 进入功能表—工具—设置—连接设置 2. 进入接入点,按“选项”—“新增接入点”—“使用默认设置”。 3. 自定义连接名称,可为:中国移动彩信,数据承载方式:GPRS 接入点名称:cmwap 4. 用户名、提示输入…

matlab guidata两个,Matlab

%在控件本身函数中用hObject调用%在别的函数中,需要使用handles调用function varargout TestGUI(varargin)% TESTGUI MATLAB code for TestGUI.fig% TESTGUI, by itself, creates a new TESTGUI or raises the existing% singleton*.%% H TESTGUI …

spring boot jar包替换报错之Unable to open nested entry 'BOOT-INF/lib/cache-api-0.4.jar'.

spring boot用layout ZIP打出来的包能够支持外部classpath,但是当用rar/7zip替换其中的jar后,报下列错误: Unable to open nested entry BOOT-INF/lib/cache-api-0.4.jar. It has been compressed and nested jar files must be stored witho…

hadoop博客 oschina

http://my.oschina.net/Xiao629/blog?catalog449279

php用json交换二维数组,PHP和Javascript的JSON交互(处理一个二维数组)

我不得不承认:我是一个彻彻底底的JS白痴。但根据项目需要,不得不使用JSON,不管怎么说,经过一个晚上的学习,已经略有所成,记录下来。PHP的JSON类库我使用的是Services_JSON,没什么特别的优点&…

RoRoWoBlog 开源博客系统介绍

萝萝窝个人博客开源项目 以Asp.net MVC 2.0 ADO.Net Entity Framework 4.0 Unity 2.0 MvcPager JQuery 等技术框架,开发的个人博客系统。 支持MetaWeblog接口 通过MetaWeblog接口,可以将您个人博客系统中的博文,直接同步到您其它网站的博…

Python基础:模块化来搭项目

简单模块化 import 最好在最顶端sys.path.append("..")表示把当前程序所在位置向上提了一级在python3规范中,__init__.py并不是必须的。文件结构: . ├── utils │ ├── util.py │ └── class_util.py ├── src │ └── sub_…

(原)离开,只为更好的活着

序)经过长时间的失眠,辗转反侧,开始默默的写下一篇文章,我不知道以后是怎样的方向,不过明天依旧会天亮。 入职)那最初的梦想 有位朋友说,找工作一定不要找初创公司,那样你会疯狂的加…

Flask入门到放弃(四)—— 数据库

转载请在文章开头附上原文链接地址:https://www.cnblogs.com/Sunzz/p/10979970.html 数据库操作 ORM ORM 全拼Object-Relation Mapping,中文意为 对象-关系映射。主要实现模型对象到关系数据库数据的映射 优点 : 只需要面向对象编程, 不需要面向数据库编…

virtualbox安装centos6.5碰到的问题

今天无聊用virtualbox安装centos6.5 , 自己笔记本vm撑不住, 用公司的试试virtualbox先 安装快完成时 没有足够的内存配置kdump”(在英文界面下提示的是“insufficient memory to configure kdump”) 出现这个提示, 解决办法, 按这篇博客可以解决, 简单点…

matlab som聚类算法,使用SOM对数据进行聚类

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼6.7 2.5 5.8 1.8 37.2 3.6 6.1 2.5 36.5 3.2 5.1 2 36.4 2.7 5.3 1.9 36.8 3 5.5 2.1 35.7 2.5 5 2 35.8 2.8 5.1 …

程序从技术到管理:思维转变是关键

IT公司研发部门的管理人员大多是从公司内部的技术人员中提拔的。在快速发展的公司里,这样的机会更多。然而这种“半路出家”的转型也给我们带来了很多挑战,其中最关键的部分在于思维方式的转变。 从个人成就到团队成就。 无论是做管理还是做技术&#xf…

javascript技巧

1、作用域安全的构造函数 function Person(name,age){ if(this instanceof Person){ this.namename; this.ageage; this.getInfofunction (){}; }else{ new Person(name,age); } } 2、函数柯里化//使用闭包返回一个函数,函数的参数是外部函数传递内部自身函数的参数…

VLC 学习计划---文档阅读

一 videolan-howto-en-html 该文档完全描述了VideoLAN "流"的解决方法. VideoLAN 项目包括两个软件. 1) VLC:以前是视频流接收的客户端,但是现在也可以作为服务端工作.2) VLS:视频服务端,能发送 MPEG-1, MPEG-2 and MPEG-4 files, DVDs, digital satellite channels,…

php 重定向到https,php - 如何从HTTPS重定向到HTTP? - SO中文参考 - www.soinside.com

如果我了解您,以下代码将解决此问题:RewriteEngine OnRewriteCond %{HTTPS} offRewriteCond %{SCRIPT_FILENAME} !\/index\.php [NC]#the above line will exclude https://www.hellomysite.com/index.php# from the following rulesRewriteCond %{SCRIP…

JAVA 面试知识点

主要包括以下几个部分: Java 基础知识点Java 常见集合高并发编程(JUC 包)JVM 内存管理Java 8 知识点网络协议相关数据库相关MVC 框架相关大数据相关Linux 命令相关面试,是大家从学校走向社会的第一步。 互联网公司的校园招聘&…