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的程序代码(该作者竟然去分析了matlab的代码,果然是大神级高手呀~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
Tags: 

延伸阅读

最新评论

发表评论