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

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

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
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: "cantest不到chusbdll.dll"是一个常见的错误提示,通常发生在使用cantest调试软件时。这个错误提示意味着cantest无法到chusbdll.dll这个动态连接库文件。这个动态连接库文件是一些USB接口设备的驱动程序之一,通常是由设备厂商提供的。如果cantest不到这个动态连接库文件,它就无法与这些USB设备通信。这会导致cantest无法完成调试任务,出现错误。 要解决这个问题,你需要检查一下是否安装了设备的驱动程序。如果没有安装设备驱动程序,你需要前往设备厂商的官网,下载并安装相应驱动程序。如果设备驱动程序已经安装,你需要在其他路径中查chusbdll.dll文件,如果到了,你需要将它复制到cantest所在的路径中。如果这些措施都不能解决问题,你可能需要重新安装cantest软件。 总之,"cantest不到chusbdll.dll"错误提示是疑难杂症之一,通常需要综合考虑多个因素才能到正确的解决方法,解决问题。 ### 回答2: cantest 是一款用于测试CAN网络的软件,而 chusbdll.dll 是一个动态链接库文件,提供了 USB-CAN 转换器与计算机之间通信的功能。当 cantest 不到 chusbdll.dll 时,说明该文件可能丢失或者未正确安装。此时无法进行 USB-CAN 转换器与计算机之间的通信,会导致 cantest 无法正常工作。 要解决这个问题,可以尝试重新安装或修复 chusbdll.dll 文件。首先,可以从一个可靠的来源下载该文件,例如官方网站或者第三方软件下载网站。然后将该文件放置到 cantest 软件的运行目录下,一般是指 cantest.exe 所在的路径。如果这样不行,还可以尝试将该文件复制到 Windows 系统目录 System32 或 SysWOW64 中,具体要看操作系统版本和位数。 除了重新安装或修复 chusbdll.dll 文件,还可以检查 USB-CAN 转换器是否已经正确连接到计算机,且驱动程序已经安装。检查设备管理器中的 USB 控制器选项,查看 USB-CAN 转换器是否被识别并显示为正常工作。如果未安装驱动程序,可以从 USB-CAN 转换器供应商处获取,通常会提供包含安装驱动程序和相关文件的安装包。如果已安装驱动程序但仍然无法工作,可能需要重新安装或更新驱动程序。 总之,cantest 不到 chusbdll.dll 的问题需要通过检查 chusbdll.dll 文件和 USB-CAN 转换器等硬件和软件环境来解决,确保能够正常进行 CAN 网络测试。 ### 回答3: cantest在运行时出现了一个错误,它提示不到chusbdll.dll文件。这个文件是一个动态链接库文件(DLL文件),在cantest运行时需要调用它来执行一些任务。文件不到的原因可能是这个文件不存在于指定的路径中或者文件路径设置不正确。 解决这个问题的方法很简单,首先我们需要确认chusbdll.dll文件是否存在于计算机中。要查DLL库文件,可以在文件管理器的搜索栏中输入文件名进行搜索。如果可以到文件,我们需要将其拷贝到cantest应用程序目录的根目录下。如果不到文件,那么我们需要下载安装这个DLL文件。 最后,我们还需要确认cantest应用程序是否正确设置了文件路径。要查看路径设置,在cantest应用程序内查选项并打开设置,查“路径”,然后将DLL文件的路径加入到“路径”列表中。如果设置了系统环境变量,可以在系统环境变量中添加DLL文件的路径。只要按照上述方法操作正确,就可以让cantest应用程序到chusbdll.dll文件了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值