调试第三方DLL升级到Windows 10后导致访问冲突

问题描述 投票:0回答:1

我知道混合来自不同MSVC的DLL是不好的,应该避免...

我有一个在我的应用程序中隐式链接的第三方DLL(XXX.dll,XXX.lib,XXX.h)。

原始设置是:

  • 我的应用程序(使用VS 2015构建)
  • XXX.dll(使用VS 2008构建)
  • x64
  • Windows 7

它成功了!

但是移至Windows 10:(我的应用程序是使用VS 2015重建的,仍然使用XXX.dll)

现在应用程序因访问冲突而崩溃Exception thrown at 0x000001EF05A2BBB9 (XXX.dll) in Application.exe: 0xC0000005: Access violation reading location 0x00000000074A3A68.

这里是调用堆栈:

XXX.dll!000002a7eeb6bbb9()   
user32.dll!UserCallWinProcCheckWow()     
user32.dll!DispatchMessageWorker()   
mfc90u.dll!AfxInternalPumpMessage()  
mfc90u.dll!CWinThread::Run()     
mfc90u.dll!_AfxThreadEntry(pParam=0x000000d5452fd890)   
msvcr90.dll!_callthreadstartex()     
msvcr90.dll!_threadstartex(ptd=0x0000000000000000)   
kernel32.dll!BaseThreadInitThunk()   
ntdll.dll!RtlUserThreadStart()  

和往常一样,“第三方”支持非常无益...

在Win 10上突然导致此问题的原因是什么?XXX.dll!000002a7eeb6bbb9()会导致什么样的错误而使内存混乱?]

我当时在考虑混合不同的CRT的问题,这是一个原始的问题:different behavior when mixing DLLs from different MSVC

c++ debugging dll windows-10 reverse-engineering
1个回答
0
投票

您好@rnd_nr_gen您是否找到此问题的解决方案?我正面临着类似的事情。我有一个与第三方dll交互的C ++应用程序(使用VS2013构建)。在Windows 7上,一切运行良好。但是,在停止支持的情况下,我们最近换用了Windows10。现在,我一直在不断收到以下0xC0000005:访问冲突,但我无法弄清楚出了什么问题。这个问题发生在我们所有的Windows 10 pc上。

© www.soinside.com 2019 - 2024. All rights reserved.