【qt5生成软件-无法加载ControlCAN.dll&错误代码0xc0150002:-等相关问题-WIN11系统-尝试解决-总结整理】
- 1.前言
- 2.环境说明
- 3.问题说明
- 4.尝试方法总结
- (1)更新支持包c++库
- (2)更新USB相关驱动
- (3)安装一个can相关上位机软件
- (4)打包软件的问题
- (5)命令行直接加载ControlCAN.dll文件,重新注册文件
- (6)其他方式
- 5.解决方式
- 6.方法总结
- 1. 查看事件查看器中的错误日志
- 2. 安装正确的 Visual C++ 运行时库
- 3. 检查 DLL 文件的依赖项
- 4. 手动检查并行配置文件
- 5. 确认 DLL 文件的路径和权限
- 6. 重新注册 DLL 文件
- 7. 尝试在另一个系统上运行
- 8. 联系软件供应商或开发者
- 9. 兼容性模式:
- 10. 管理员权限:
- 7.总结
1.前言
最近,电脑更换了win11的系统,安装各种软件后,发现原本在win10上可以运行的qt5生产的软件,用于调试can卡相关设备的软件用不了。
尝试了一些方式,均未能解决,以下为相关记录,也为其它人铺平道路吧。
最后实在没办法,只能更新回去win10系统。
另外就是想要说的是,如果你要是遇到相关问题,也可以参考以下解决方式,没准能解决呢,自己遇到情况还是挺特殊的。
2.环境说明
本次极大概率跟环境系统相关,还是准备系统情况,如果是win10,下面方式供你参考。
开始的电脑系统:win11 64位
后装的电脑系统:win10 64位
测试软件,为qt5生成 64位上位机软件,调试can卡相关。
3.问题说明
如下图所示,简单说,在系统win11上,报错无法加载ControlCAN.dll,这个文件,即使文件就放在同一目录也不行,并且这是打完包的软件。
即使直接运行没有打包的软件,也会报错,报错如下。
4.尝试方法总结
(1)更新支持包c++库
一般来说,如果遇到上述问题,自己所遇到的都是,因为目标电脑,本身的c++库太老了,只有更新下,就可以了。
之前在win10上使用的库,肯定不能够在win10上使用了,(后来尝试了,也不行。),如下网址,在微软官网上,有相对应的困,下载下来,运行跟新下。
链接:https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
界面可能不太一样,也有可能是英文的,找到地方就行,安装自己电脑来。
结果发现不行,这就很神奇,那么可能是其他原因吧。
(2)更新USB相关驱动
当然也有可能是USB相关驱动,如下,是在can卡相关软件包里,有个usb相关驱动,可以更新下。
资料链接:https://download.csdn.net/download/qq_22146161/87439313
结果发现还是不行。
(3)安装一个can相关上位机软件
既然驱动也不行,那么需要交叉验证下了,看看是不是电脑就不能使用can相关软件,如上,也是软件包中的软件。
使用一个硬件设备后,发现可以自发自收,说明电脑是可以使用can卡软件的。
(4)打包软件的问题
另一个方向就是,有可能本身qt生产软件可以使用,但是打包之后,不支持了,当然实际运行这个软件,发现是其他问题,报了一个其他错误。一般来说,如下相关错误,就是缺少c++相关库,但尝试了。
(5)命令行直接加载ControlCAN.dll文件,重新注册文件
另一种方式,就是直接将文件放到指定位置,然后用命令加载,如下。
regsvr32 /u ControlCAN.dll
regsvr32 ControlCAN.dll
但是报错,看来这种还是不行
(6)其他方式
总之,尝试了一些方式吧,都没有在win11上解决这个问题,无奈,只能更新回win10。
如下,可以发现,如果是其他软件,不带有can,是可以正常运行的。
5.解决方式
最后,退回win10版本后,终于可以运行,这里还是建议,使用习惯的软件,就一直用,不要轻易更改。我在说STM32cudeIDE上遇到过,现在win11也遇到了。
6.方法总结
简单在总结下,在网上找到一些方式吧,以供参考。
1. 查看事件查看器中的错误日志
这块自己没有实际尝试,忘记了,不能每种方式都尝试吧。
检查事件查看器中的详细错误信息,这通常可以提供关于并行配置错误的更多信息:
- 按 Win + R 键,输入 eventvwr 并按回车。
- 在左侧导航窗格中,展开“Windows 日志”,然后单击“应用程序”。
- 查找带有“SideBySide”源的错误事件。
- 查看事件详情,找出缺少的依赖项或配置问题。
2. 安装正确的 Visual C++ 运行时库
这是最开始时,使用的方式,认为就是库不匹配的原因,但没能成功。
安装正确版本的 Visual C++ 运行时,你可能需要安装多个版本,包括 x86 和 x64 版本,多次尝试不同库吧。
链接:https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
或者上网上找一找。
3. 检查 DLL 文件的依赖项
下载下来,不太会用,用起来要学习下,感觉挺麻烦的,就没用。网上有相关教程吧。
使用 Dependency Walker 工具来检查 ControlCAN.dll 的依赖项:
- 下载并安装 Dependency Walker.
- 打开 Dependency Walker,并加载 ControlCAN.dll 文件。
- 查看是否有任何缺失的依赖项或错误信息。
链接:https://www.dependencywalker.com/
4. 手动检查并行配置文件
实在没办法了,一点点排除,不过太慢了,感觉是电脑本身问题,就也没弄。
手动检查并行配置文件(manifest 文件),确保它们没有问题。以下是一些具体步骤:
1,在命令提示符(以管理员身份运行)中使用 sxstrace 工具来生成并行配置错误的日志文件:
sxstrace trace -logfile:sxstrace.etl
2,尝试运行导致错误的应用程序。
3,停止跟踪并生成可读的日志文件:
sxstrace stoptrace
sxstrace parse -logfile:sxstrace.etl -outfile:sxstrace.txt
4,打开生成的 sxstrace.txt 文件,查看详细的错误信息。
5. 确认 DLL 文件的路径和权限
新电脑,尝试放到指定位置,但是不行。
确保 ControlCAN.dll 文件的路径正确,并且文件和其依赖项有足够的权限。确保文件没有被系统或防病毒软件锁定或阻止。
通常情况下,它应该放置在应用程序的目录中,或者系统路径(如 C:\Windows\System32 或 C:\Windows\SysWOW64)中。
检查环境变量是否正确配置。右键点击“此电脑”,选择“属性” -> “高级系统设置” -> “环境变量”,并确保 PATH 环境变量包含 DLL 文件所在的目录。
6. 重新注册 DLL 文件
需要以管理员身份重新注册 DLL 文件,可以尝试下:
- 打开命令提示符(以管理员身份运行)。
- 导航到 ControlCAN.dll 文件所在的目录。
- 输入以下命令重新注册 DLL 文件:
regsvr32 /u ControlCAN.dll
regsvr32 ControlCAN.dll
7. 尝试在另一个系统上运行
之前在win10成功了,所以我直接更新系统了。。。
如果可能的话,尝试在另一个系统上运行相同的应用程序,看看是否存在同样的问题。这可以帮助确定问题是否与特定的系统环境有关。
最后确认和系统相关。
8. 联系软件供应商或开发者
实在不行在网上问问,看看有人遇到过相关问题么,或者在微软官网上问问呗,简单说,解决不了,看看能不能摇人。
9. 兼容性模式:
这是后续查到的,当时确实没想到。
- 右键点击应用程序的可执行文件,选择“属性”。
- 在“兼容性”选项卡中,勾选“以兼容模式运行这个程序”,并选择 Windows 10 或更早的版本。
- 点击“应用”然后“确定”,再尝试运行应用程序。
10. 管理员权限:
尝试过,不行。
右键点击应用程序的可执行文件,选择“以管理员身份运行”。
7.总结
以上供你参考,忠告是,用习惯了环境,尽量不换,别图新,导致自己增加麻烦。