vs2010中win32配置下程序报错0xc000007b无法正常启动

在VS2010中,一个32位的Win32程序在运行时遇到了0xc000007b错误。经过排查,发现是由于32位程序加载了64位版本的CRT库导致。通过dependency工具检查,确认了问题所在。解决方案是将32位的msvcp100d.dll和msvcr100d.dll放入SysWOW64目录,遵循64位Windows系统中32位程序与System32和SysWOW64目录的关系。此外,建议直接从VS安装目录复制正确的CRT库覆盖系统文件,以确保正确运行。
摘要由CSDN通过智能技术生成

新来的同事电脑出现一个奇怪的问题,vs中写了一个HelloWorld程序,编译运行后报错如下

表现上是win32配置编译后运行,报如上错误,win64的配置编译后运行正常

一开始怀疑是他的VS环境有问题,不过exe放在外边运行也是一样的错误,所以排除。

后来也在网上查了一些资料,基本锁定了是exe需要的CRT库版本没有匹配上。

小工具dependency的截图如下,明明是32位的exe现有依赖的却是64位的C运行库。

于是乎,我开始怀疑他64位的系统里,system32目录下的dll版本是错的,但是用dependency检查了发现没毛病,确实是32位的。省略中间的来回排查和纠结。。。

后来,我回到我的电脑,检查了我系统里的system32目录,发现我的syswow64目录里的msvcp100d.dll和msvcr100d.dll全是32位的,此时,我有点怀疑人生。。不,怀疑直觉。。于是手动百度了windows64和32位的dll使用方案,于是看到了下边这位的答案,简直就是我的问题的翻版。

当您在启动VMware应用程序时遇到错误代码0xc000007b时,这通常表示应用程序无法正确加载所需的依赖项。这可能是由于以下几个原因导致的: 1. 缺少或损坏的系统文件:某些系统文件可能已损坏或丢失,导致应用程序无法正常启动。 2. 不兼容的操作系统:某些应用程序可能不兼容您当前使用的操作系统版本。 3. 32位/64位不匹配:如果您尝试在32位操作系统上运行64位应用程序,或者在64位操作系统上运行32位应用程序,可能会导致此错误。 4. 缺少必要的运行时库:某些应用程序可能需要特定的运行时库才能正常运行,如果缺少这些库,则会出现错误。 为了解决这个问题,您可以尝试以下几个步骤: 1. 重新安装应用程序:尝试卸载并重新安装VMware应用程序,确保使用最新版本,并确保从官方网站下载。 2. 更新操作系统:确保您的操作系统已经更新到最新版本,并且与应用程序兼容。 3. 安装所需的运行时库:根据应用程序的要求,安装所需的运行时库。您可以从Microsoft官方网站下载并安装Visual C++ Redistributable包。 4. 执行系统文件检查:打开命令提示符(以管理员身份运行),然后运行以下命令:sfc /scannow。这将扫描并修复系统文件的任何损坏。 如果上述步骤无法解决问题,您可能需要联系VMware的技术支持团队以获取进一步的帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值