msvcrt.dll(版本7.0.17763.1)导致Windows 10 1809上的应用程序崩溃(OS Build 17763.292) [英] msvcrt.dll (version 7.0.17763.1) causes an application crash on Windows 10 1809(OS Build 17763.292)

查看:191
本文介绍了msvcrt.dll(版本7.0.17763.1)导致Windows 10 1809上的应用程序崩溃(OS Build 17763.292)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

将Windows 10版本从1803升级到1809. 我们的应用程序崩溃:



事件查看器输出:


错误应用程序名称:myApp.exe,版本:1.0.46.515,时间戳:0x592327f1


错误模块名称:msvcrt.dll,版本:7.0。 17763.1,时间戳:0x0435cf49


异常代码:0x40000015


故障偏移:0x0003b83b


错误进程id:0x2598


错误应用程序启动时间:0x01d4b408d17dd56b


错误应用程序路径:C:\Program Files(x86)\ [path_to_my_app] \ MyApp.exe


错误模块路径:C:\ WINDOWS \ System32 \ msvcrt.dll


报告ID:ceece972-b31b-4de7-ab9e-8f1a16f4a01a


错误包已满名称: 


错误的包相关申请ID:



< p style ="">我们的应用程序适用于以前版本的  Windows 10(1803及之前)。新的msvcrt.dll上是否有更新导致崩溃?


我们有:



  • SFC检查已通过。
  • 最新版Windows 10 
  • app是在VC ++ 6.0中开发的,试图将项目迁移到VS2010或更高版本,但它会导致一些错误。所以我们宁愿使用VC ++ 6.0。
  • 出于某种原因,我们无法使用兼容模式打开这个应用程序。

在任何帮助下都会非常感激。


解决方案


msvcrt.dll是MicroSoft Visual C RunTime。这本质上是C标准库,用于大多数C / C ++程序---或者换句话说,大多数程序。不要以为msvcrt是造成崩溃的原因;它更有可能是
程序向标准库提供错误的信息,并使其崩溃。

你最好生成转储文件来找到何时exe程序崩溃。  ;

例如,main.cpp中定义的函数:

 LONG WINAPI UnhandledExceptionFilter_SpawDmp(struct _EXCEPTION_POINTERS * ExceptionInfo)
{
TCHAR strDumpFile [512] = {0};
_tcscpy(strDumpFile,_T(" dumpfile.dmp"));
HANDLE hFile = CreateFile(strDumpFile,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile!= INVALID_HANDLE_VALUE)
{
MINIDUMP_EXCEPTION_INFORMATION ExInfo;

ExInfo.ThreadId = :: GetCurrentThreadId();
ExInfo.ExceptionPointers = ExceptionInfo;
ExInfo.ClientPointers = NULL;

//写转储
BOOL bOK = MiniDumpWriteDump(GetCurrentProcess(),GetCurrentProcessId(),hFile,MiniDumpNormal,& ExInfo,NULL,NULL);
CloseHandle(hFile);
}
:: PostThreadMessage(GetCurrentThreadId(),WM_QUIT,0,0);
返回EXCEPTION_EXECUTE_HANDLER;
}





" dumpfile.dmp"是转储文件的名称。然后在main()中调用 

 SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)UnhandledExceptionFilter_SpawDmp); 



使用dmp找到崩溃的代码行。




Best此致,以
Drake


After upgrading the Windows 10 version from 1803 to 1809.  Our application crashes:

The Event Viewer output:

Faulting application name: myApp.exe, version: 1.0.46.515, time stamp: 0x592327f1

Faulting module name: msvcrt.dll, version: 7.0.17763.1, time stamp: 0x0435cf49

Exception code: 0x40000015

Fault offset: 0x0003b83b

Faulting process id: 0x2598

Faulting application start time: 0x01d4b408d17dd56b

Faulting application path: C:\Program Files (x86)\[path_to_my_app]\MyApp.exe

Faulting module path: C:\WINDOWS\System32\msvcrt.dll

Report Id: ceece972-b31b-4de7-ab9e-8f1a16f4a01a

Faulting package full name: 

Faulting package-relative application ID:

Our app works find on the previous version of  windows 10 (1803 and before) . Is there something updates on the new msvcrt.dll causes the crash?

We have:

  • SFC check passed.
  • Up to date Windows 10 
  • The app is developed in VC++ 6.0, tried to migrate the project to VS2010 or later, but it causes some errors. So we'd rather use VC++ 6.0.
  • For some reason, we can't use compatibility mode to open this app.

Would be very appreciated on any help.

解决方案

Hi,

msvcrt.dll is MicroSoft Visual C RunTime. This is essentially the C standard library, which is used in most C/C++ programs --- or in other words, most programs. Don't assume that msvcrt is what's causing the crash; it's much more likely to be the program giving the wrong information to the standard library, and making it crash.
You'd better generate dump file to locate the when exe program crashes. 
For example, defined function in main.cpp:

LONG WINAPI UnhandledExceptionFilter_SpawDmp(struct _EXCEPTION_POINTERS* ExceptionInfo)
{
    TCHAR strDumpFile[512] = { 0 };
    _tcscpy(strDumpFile, _T("dumpfile.dmp"));
    HANDLE   hFile = CreateFile(strDumpFile, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hFile != INVALID_HANDLE_VALUE)
    {
        MINIDUMP_EXCEPTION_INFORMATION  ExInfo;

        ExInfo.ThreadId = ::GetCurrentThreadId();
        ExInfo.ExceptionPointers = ExceptionInfo;
        ExInfo.ClientPointers = NULL;

        //   write   the   dump
        BOOL   bOK = MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal, &ExInfo, NULL, NULL);
        CloseHandle(hFile);
    }
    ::PostThreadMessage(GetCurrentThreadId(), WM_QUIT, 0, 0);
    return EXCEPTION_EXECUTE_HANDLER;
}



"dumpfile.dmp" is the name of the dump file. Then call 

SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)UnhandledExceptionFilter_SpawDmp);

in main().
Use the dmp to locate the code line where crashes.

Best Regards,
Drake


这篇关于msvcrt.dll(版本7.0.17763.1)导致Windows 10 1809上的应用程序崩溃(OS Build 17763.292)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆