VS2019调用Matlab2019b生成的dll时初始化异常
在Visual Studio中使用C 调用Matlab程序
我目前在写一个用VS和Matlab混编的程序,由于之前的版本(VS2005 MATLAB2010b)太老了,现在想换用VS2019 MATLAB2019b的版本。我原本以为会很简单就能完成配置,没想到在运行时会出现下面的问题。(帧不在模块中。在加载的模块中未找到当前堆栈帧。无法显示此位置的源代码。)
VS与MATLAB版本选择
如上所述,本次我用的软件是VS2019和MATLAB2019b,如果你用的是其他版本的软件可以在MATLAB官网查找,此版本的MATLAB支持哪个版本的编译器。
Previous Releases: System Requirements and Supported Compilers
在Supported Compilers一栏中,点击Details,即可查看支持的编译器,已根据MATLAB版本选择相应版本的VS,或者根据当前的VS版本选择要配合编程的MATLAB版本。
VS与MATLAB混编的环境配置
各个版本的环境配置大同小异,能搜到的详细步骤比较多,下面列出对我比较有帮助的博文。
在Visual Studio中使用C 中调用MATLAB程序
C 调用Matlab生成的DLL动态链接库进行混合编程(win10 VS2015 Matlab2016b)
初始化异常的解决
检查代码后,发现在调用初始化时[名字]Initialize()
,程序就会引发此异常。
0xc0000005处理
一开始我在网上搜解决方案时,一直纠结在“帧不在模块中。在加载的模块中未找到当前堆栈帧。无法显示此位置的源代码。”这句话之中,后来试着搜了异常信息0xc0000005:读取位置0x0000000000000008
,发现了一个博文就能够解决这个问题。
这里的解决办法是:
1.调试–>窗口–>异常设置
2.取消勾选Win32 Exceptions
但是,我做了这一步后,程序能够跑出来了,只是输出窗口会有很多异常信息xsd_binder::MalformedDocumentError
,下面可以解决这个问题。
Debug错误:xsd_binder::MalformedDocumentError
主要参考:
解决办法:
属性-调试(debugging)-调试器类型(debugger type):自动(auto)修改成混合(mixed)
之后,我发现将调试器类型改为混合,即使在异常设置中不取消勾选Win32 Exceptions,程序也能正常运行,且没有异常信息。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhihahch
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信提示登录环境异常是什么意思原因
PHP中文网 04-09 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
微信人名旁边有个图标有什么用
PHP中文网 03-11