64位Matlab 2010a在windows 7拨号上网联网下无法启动的解决办法

今天安装了Matlab 2010a的standalone版本,装完后发现居然不能打开,任务管理器里CPU一直被其进程Matlab.exe占用着。。。

第一个反应就是上网寻找到答案,欣喜的是发现了很多类似的问题,主要集中在Matlab 2009b/2010a这两个版本上,只要电脑正在通过拨号(Dial-up)上网,那么就不能打开Matlab,无语。最终,找到了解决方法,当然是在ilovematlab上找到了,毕竟这是国内Matlab最大的社区。

一位高手在http://www.ilovematlab.cn/thread-64957-1-1.html这个帖子上提出了解决方法,其帖子中写道:

很多用Vista和Win7(XP一般无此问题)的朋友都遇到拨号上网(其他上网方式一般无此问题)后,Matlab 2009b无法启动的问题。我也遇到了这个问题,非常郁闷,于是分析了一下Matlab的程序代码,发现问题出在Vista/Win7的一个(新版本)dll:iphlpapi.dll 里的某函数,在拨号状态下进入了死循环。归根到底,还是Matlab2009b和Vista/Win 7的兼容性不好。解决方法有两个(二选一即可):

1.(推荐方法,我自己试验成功。注:我用的是Vista Home Basic SP2系统)从干净的Windows XP系统中system32目录中拷贝一份iphlpapi.dll到 Matlab 2009b安装目录\bin\win32中问题即可解决

2.将matlab的程序设置为NT4 兼容模式(坏处就是,界面非常的不和谐。。)

但是,我看到bin\win32这个文件夹时,马上意识到在64位系统下可能并不存在这样的文件夹,果然,64位的Matlab是bin\win64这样的文件夹,当我把下载好的32位XP的iphlpapi.dll拷贝到bin\win64下再运行Matlab,依然陷入死循环,无法打开;调整兼容模式为NT4后,同样无法打开。

这时,我已经确信64位系统是造成64位Matlab无法打开的本质原因,既然在32位XP下有iphlpapi.dll,那么在64位XP下肯定也有这个文件,于是我马上下载了一个64位XP的镜像,果然,在AMD64文件夹下找到了64位的iphlpapi.dl_,通过命令行expand命令展开为iphlpapi.dll,就得到了64位的这个文件,拷贝到bin\win64下,再次运行Matlab,不出所料,打开正常了!

再次佩服那位提出本方法的高手

下载地址

32位XP下的iphlpapi.dll下载:下载地址1

64位XP下的iphlpapi.dll下载:下载地址1

留言 38

  1. an_ling
    顶一个
  2. geniusxmw
    博主64位XP下的iphlpapi.dll不能下,谢谢你发到我的邮箱geniusxmw027@sohu.com
    1. shinichi_wtn
      已经发送,请查收!
  3. szlaobai
    我考了个64位的iphlpapi.dll,晚上回去实施。先感谢下,谢谢ps:这么利害,怎么分析命令代码啊?
    1. shinichi_wtn
      我不知道啊,这个问题是ilovematlab上一位同学解决的,我只是想到64位系统也应该是相同的解决方法:-)
  4. 心依星动
    谢天谢地,终于找到答案了!!我都快疯了,还以为是安装时的问题,正准备卸载重装的呢!!
    1. shinichi_wtn
      呵呵,我之前也是很无语,网上搜索了答案才知道,不过由于32位的和64位的系统又有差别,所以还折腾了一下
  5. szlaobai
    ok好了,再次感谢楼主。祝学业有成,万事达!
    1. shinichi_wtn
      恩,OK了就好:-)
  6. 夜用护毅
    能否请博主发送一份x64的dll到我的邮箱binshuo20@gmail.com,谢谢115保存已过期,而第一个地址又打不开,麻烦你了
    1. shinichi_wtn
      已经发送!那个115地址的确过期了,现在更新了下。
      1. 夜用护毅
        已收到,真是太谢谢了
  7. Kevin104174
    谢谢啊,问题解决了
  8. dawned
    谢谢啦,会不会有其他Bug,博主有没有发现?
    1. shinichi_wtn
      使用至今,没有遇到Bug,呵呵
      1. Candyfloss10
        楼主~我有个问题想问,我是64位win7英文版,我安装完后不是打不开matlab,而是一些基本的函数不能运行,比如简单的矩阵除法。弹出框是 module could not be found......同样的语句在matlab 7.1下可以运行。但是我装的2010a就是不能运行.....请问也可以用这个方法解决么?
        1. shinichi_wtn
          这个方法只是解决Matlab2009b/2010a在拨号联网情况下无法打开这个问题。至于基本函数不能运行,和这个应该是没有关联的,可能是软件安装不全或者有模块有损坏造成。我还没有遇到任何不能运行的函数。看看完全卸载再重装是否能解决问题吧,或者baidu,google一下其他人有没有遇到这样的问题。
  9. dawned
    我也用了,不错,谢谢博主
  10. kiwi0512
    谢谢楼主,正为64位上Matlab头疼呢。。。楼主能否发一份64位的iphlpapi.dll 到我邮箱 kiwi.q@hotmail.com ,上面的连接我都打不开咯,太谢谢啦。。。
    1. shinichi_wtn
      已经发送!
  11. zwb565055403
    太强悍了 谢谢啦
  12. wangyp523
    ,太感谢了!!
  13. 寒江侵袭
    想要64位和32位的,可以去我的空间里下~~
  14. jimmy760625
    想請問,是下載後直接把iphlpapi.dll 複製進去SysWOW64這個資料夾裡嗎??他說我沒權限..我不太會用~可否有人可教我???
    1. shinichi_wtn
      是将iphlpapi.dll拷贝至Matlab安装目录里的一个文件夹中X:\Program Files\MATLAB\R2010a\bin\win64,X是你Matlab所在的盘符
      1. jimmy760625
        可以用了可以用了!!!好感動!!!!感謝您的回覆~~~真的很感謝^^
  15. xiaoxiaoant
    太棒了,我装的WIN7x64,最后还是用楼主的方法才解决的!
  16. CyborgKL
    115又过期了,楼主可否发到邮箱tellsacredfire@gmail.com非常感谢啊
    1. shinichi_wtn
      的确过期了,呵呵,已经发送到你的邮箱!
  17. dd20061226
    115链接又过期了,能否请博主发送一份x64的dll到我的邮箱dengliforever@163.com,找了这个好久了,都没找到,万分谢谢!麻烦了!
    1. shinichi_wtn
      已经发送,请查收!有段时间没有访问115了,现在登录上去居然要完成一大堆新手任务,否则不能共享......
      1. dd20061226
        收到,万分感谢啊,问题解决了!
  18. shinichi_wtn
    已经修正下载地址,现在可以正常下载了^_^
  19. zolo7717
    能否请博主发送一份x64的dll到我的邮箱zoloeden@hotmail.com,谢谢
  20. add870715
    膜拜 
  21. 雪域寒风蒹葭
    问题解决,哈哈。好东西。谢了
  22. jickrey
    把这个64位的拷过去后可以在联网状态下打开,但是保存simulink的时候MATLAB就会出错自动关闭。大家可有什么好的办法吗?
  23. mengzhao2010
    厉害