关于混编的配置请移步下面的博客,笔者用的是Matlab2016b与Matlab2016进行混编的。



 http://blog.csdn.net/wind_liang/article/details/51402224

 

博客里面非常详细的讲解了应该如何配置 Vs 以及利用matlab生成 dll 文件,这里不再赘述。


混编期间遇到了不少的问题,下面主要将遇到的问题写下来。

需要特别注意将matlab生成的 dll、h、lib文件复制到你所建立 c++ 程序的工程目录下面,否则会报错(无法启动应用程序,因为计算机中丢失。。。)


需要复制的三个文件的截图

Matlab2016 与vs2015 混编(生成dll动态链接库)Matlab2016 与vs2015 混编(生成dll动态链接库)Matlab2016 与vs2015 混编(生成dll动态链接库)

因为丢失上述三个文件导致报错的截图

Matlab2016 与vs2015 混编(生成dll动态链接库)Matlab2016 与vs2015 混编(生成dll动态链接库)


下面讲述在配置过程中可能出现的一些并不常规的错误(引发的异常0xC0000005:读取位置发生访问冲突

Matlab2016 与vs2015 混编(生成dll动态链接库)

Matlab2016 与vs2015 混编(生成dll动态链接库)

此时似乎束手无策,但是仔细看箭头所指打勾的部分,直接去掉那个勾再重新编译一下项目,然后发现直接闪退,这是因为VS在初始化matlab生成的dll文件时就失败了,为了找到原因需要将dos窗口停下来,直接加上  下面的让执行停止,仔细看dos窗口中的内容

system("pause");

Matlab2016 与vs2015 混编(生成dll动态链接库)Matlab2016 与vs2015 混编(生成dll动态链接库)

dos 窗口中的内容显示如下

Matlab2016 与vs2015 混编(生成dll动态链接库)Matlab2016 与vs2015 混编(生成dll动态链接库)

从上面的内容可以清晰的看到,出现这个问题的主要原因就是你Matlab文件夹下的某个工具箱访问出错,也就是你装了一个工具箱到Matlab ,并且这个工具箱会会在matlab运行的时候直接启动,这样直接导致matlab生成的dll文件中也包含了这个文件,所以直接去matlab的 安装目录下找到toolbox\local 路径删除里面的 startup.m文件,然后在重新用matlab生成一下dll文件就可以了。

 




相关文章:

  • 2021-10-19
  • 2019-07-31
  • 2018-02-17
  • 2021-09-17
  • 2019-03-15
  • 2018-09-05
  • 2021-11-23
  • 2021-03-05
猜你喜欢
  • 2021-11-03
  • 2021-09-29
  • 2021-09-17
  • 2021-08-31
  • 2021-09-29
  • 2021-09-29
  • 2021-09-29
  • 2021-11-17
相关资源
相似解决方案