MATLAB与VC混编中的DLL加载问题

1.问题的出现
自己之前写了一个MATLAB2010b与VC++2010混编的小程序,起初程序还能正常运行(就是总是会出现一些潜在的异常警告)。后来因为电脑蓝屏,系统恢复到了以前的正常运行状态,结果程序出现了“mclmcrrt7_14.dll”找不到的编译错误,按照网上给出的解决方法,于是将MATLAB中的这个DLL拷到C:\Windows\SysWOW64目录下,重新编译通过,但结果是程序运行中断,原因是mclInitializeApplication和相应的库初始化函数调用失败,查找了大料资料和排查了各种情况依然没有找到问题所在,直到重新安装一个MATLAB2012b。

2.问题分析
在调用在MATLAB2012b中编译生成的DLL时,程序能够正确执行,在VS输出窗口发现程序能够自动寻找到并加载MATLAB安装目录中的mclmcrrt8_0.dll,所以,这里的问题很可能是之前程序的DLL加载路径发生变化,而导致无法正常地调用相关的DLL,这里关键是如何恢复最初的指定加载路径。


3.问题原因及解决方法
通过查看系统环境变量问题发现新安装的MATLAB2012b中有两个目录写进了系统环境变量的Path中,于是尝试也将MATLAB2010b中的bin目录和runtime\win32目录写入Path中,关闭工程重新打开后再运行,从调试输出窗口中看到程序加载了MATLAB中相关的DLL,程序又恢复到了原来的状态能够正常运行了,这个困扰并折磨了自己一个多星期的诡异问题,原来是系统环境变量的问题!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值