有个问题理了很久没有理出头绪来,请大家帮我分析一下:
【表现】
VC2005编写的程序在Windows 7 64bit 英文版上运行不出界面来,进程管理器中看到此进程,过几秒钟后消失。
【查看事件日志】
Faulting application name: abc.exe, version: 1.0.13.1423, time stamp: 0x4f85220c
Faulting module name: MSVCR80.dll, version: 8.0.50727.4927, time stamp: 0x4a2752ff
Exception code: 0xc000000d
Fault offset: 0x00015849
Faulting process id: 0xa40
Faulting application start time: 0x01cd3ef5ef44b83f
Faulting application path: C:\test\abc.exe
Faulting module path: C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4927_none_d08a205e442db5b5\MSVCR80.dll
Report Id: 31b6650c-aae9-11e1-8d46-001d0912432e看起来是msvcr80.dll出现了错误,具体不知道错误原因。但是我有几个疑问:
一,可执行文件中要求的CRT是8.0.50727.762,为啥系统给调的是8.0.50727.4927?
二,如何使系统才能调用8.0.50727.762的msvcr80.dll?下面贴出来的是可执行文件中manifest的内容:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="OppoMobileAssistance"
type="win32"></assemblyIdentity>
<description>abc</description>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762"
processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.MFC" version="8.0.50727.762"
processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>下面是WinSxs目录的内容:
【表现】
VC2005编写的程序在Windows 7 64bit 英文版上运行不出界面来,进程管理器中看到此进程,过几秒钟后消失。
【查看事件日志】
Faulting application name: abc.exe, version: 1.0.13.1423, time stamp: 0x4f85220c
Faulting module name: MSVCR80.dll, version: 8.0.50727.4927, time stamp: 0x4a2752ff
Exception code: 0xc000000d
Fault offset: 0x00015849
Faulting process id: 0xa40
Faulting application start time: 0x01cd3ef5ef44b83f
Faulting application path: C:\test\abc.exe
Faulting module path: C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4927_none_d08a205e442db5b5\MSVCR80.dll
Report Id: 31b6650c-aae9-11e1-8d46-001d0912432e看起来是msvcr80.dll出现了错误,具体不知道错误原因。但是我有几个疑问:
一,可执行文件中要求的CRT是8.0.50727.762,为啥系统给调的是8.0.50727.4927?
二,如何使系统才能调用8.0.50727.762的msvcr80.dll?下面贴出来的是可执行文件中manifest的内容:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="OppoMobileAssistance"
type="win32"></assemblyIdentity>
<description>abc</description>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762"
processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.MFC" version="8.0.50727.762"
processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>下面是WinSxs目录的内容:
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货