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上還不太會發博客,本來預想的搞篇圖文並茂的博客,盡量減少讀者的負擔,但是新手能力有限,還不知道怎么發圖,哎,請理解一個新手的無奈啊!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值