【疑难杂症】找不到从属程序集***DLL的激活上下文生成失败

本文记录了一次C++程序因DLL文件问题导致的0xc0150002错误排查过程。通过查看系统程序日志,发现DLL依赖的Microsoft.VC90.DebugCRT库缺失。最终发现是DEMO中提供的DLL错误,问题解决在于更新正确的DLL文件。同时,学习了如何检查DLL的架构和依赖项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++菜鸡一枚,记录一次C++运行报错的排查过程:
运行报错如下:

应用程序无法正常启动(0xc0150002)。

在这里插入图片描述
因为这边查看不到什么信息,而且VS也没有报什么错误信息,所以只能到系统程序日志,查看错误信息如下:

找不到从属程序集 “********\C++\Bin\Debug\HsFutuSystemInfo.dll”的激活上下文生成失败。 找不到从属程序集 Microsoft.VC90.DebugCRT,processorArchitecture=“x86”,publicKeyToken=“1fc8b3b9a1e18e3b”,type=“win32”,version=“9.0.21022.8”。 请使用 sxstrace.exe 进行详细诊断。

在这里插入图片描述
基本可以确定是这个dll文件有问题了。。

因为是对接别人的平台,所以是在运行别人给的DEMO,并且这个DLL是别人那边提供的,所以最后寻求帮助后发现网站上面的DEMO中的DLL给错了,,跪了


虽然最后的原因已经超出技术的范畴,但在排查的过程中也去学习到一些东西,记录一下。

如何查看DLL支持的是32位还是64位?

1、打开VS的命令行工具:
在这里插入图片描述
2、使用VS的自带工具查看,如下:

D:\VisualStudio2019\Professional>dumpbin /headers *****\lib\win64\HsFutuSystemInfo.dll

在这里插入图片描述
在这里插入图片描述

如何查看DLL依赖

有个depends.exe的软件似乎可以查看DLL的依赖,但这里有个疑问,想我的这个DLL好像有很多报错的地方,不过实际上我确实缺少这些报错的DLL
但这里就有个问题,即便我没有这些报错的DLL,程序好像也能运行?有知道的小伙伴可以麻烦告知一下,感激不尽!!
在这里插入图片描述

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值