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

时间:2018-08-08 13:14:57

标签: c++ debugging dll windows-10 reverse-engineering

  

我知道混合来自不同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

0 个答案:

没有答案