NTDLL.DLL): 0xC0000005: Access Violation-解决方法

本文解决了DLL中调用new操作符导致的(AVIDLL.DLL):0xC0000005:AccessViolation错误。通过将DLL的生成方式改为共享MFC方式并使用CRT动态链接版本,成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

在编写自己的dll程序的时候,先开始在调用dll的exe上出现(AVIDLL.DLL): 0xC0000005: Access Violation,不是很明白,为什么会出现这个问题。

在内部进行调试的时候发现,是调用了new操作符的缘故。

很不理解,在dll中调用new操作符会出现这么一个问题,网络上搜索,在微软msdn论坛(具体地址:http://forums.msdn.microsoft.com/zh-CN/vclanguage/thread/951a04be-6b52-4617-b396-9c35e3755759/)上搜索到相关问题。

于是按照说明,将dll的生成方式修改为"共享mfc方式"

         project properties -> general -> Project Defaults->Use of MFC
         To set the properties "Use MFC In A Shared DLL "

另外,在网上也发现另外一篇,console方面的, 解决办法:使用c   runtime   library的动态链接版本(在你的console工程中设置忽略所有的默认链接库,然后链接到msvcrt.lib就可以了)(具体地址:http://www.poptool.net/software/p606/A60674501.shtml

调试,发现问题解决,感谢上面发布的兄弟们!

OK!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值