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,程序好像也能运行?有知道的小伙伴可以麻烦告知一下,感激不尽!!