我尝试在 WinPE 中运行 QT C++ GUI 示例。它应该只打开一个空窗口。
它提示缺少 d3d11.dll 和 dxgi.dll。
QT 尝试使用 OpenGL,如果没有合适的驱动程序,它会使用带有 ANGLE 的 DirectX。我尝试通过在 Qapplication 实例化之前调用 Qapplication::setAttribute(Qt::AA_UseSoftwareOpenGL) 来删除 DirectX 依赖项。没有变化,仍然需要这两个 dll。
我尝试从常规 Windows 中复制这两个文件,现在错误是:“无法在动态链接库 dxgi.dll 中找到过程入口点 CheckIsMSIXPackage”
我不需要任何硬件加速,我怎样才能让它运行?
- QT 版本:5.14.2(动态链接)
- WinPE 版本:Windows 10 2004
- 编译器:Visual Studio 2019 和 Mingw 8.1(我都尝试过,结果相同)
最佳答案
太晚了?不是解决方案,只是一个想法。 实际上我使用Winpe WinPe 2009。当我在这个winpe中安装VirtualBox 6.1.16时,我添加了opengl32.dll和其他文件。 VirtualBox 使用 QT5 文件。我得到同样的错误。通过 Depends.exe,我发现 opengl32.dll 需要此 ChechIsMSIXPackage 并在 kernelBase.dll 中查找它。但是因为winpe2009附带的kernelBase.dll不包含这个API,所以我从普通的W10(在ISO/Install.wim中)获取这个kernelBase.dll。而且,就我而言,virtualBox 运行良好,QT5 也运行良好,opengl32 也运行良好。
关于c++ - 基于 QT 的 GUI 应用程序可以在 Windows PE 中运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65004151/