c++ - 基于 QT 的 GUI 应用程序可以在 Windows PE 中运行吗?

标签 c++ windows qt winpe

我尝试在 WinPE 中运行 QT C++ GUI 示例。它应该只打开一个空窗口。

它提示缺少 d3d11.dll 和 dxgi.dll。

  1. QT 尝试使用 OpenGL,如果没有合适的驱动程序,它会使用带有 ANGLE 的 DirectX。我尝试通过在 Qapplication 实例化之前调用 Qapplication::setAttribute(Qt::AA_UseSoftwareOpenGL) 来删除 DirectX 依赖项。没有变化,仍然需要这两个 dll。

  2. 我尝试从常规 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/

相关文章:

重新解释模板参数常量的 C++ 编译器行为

c++ - 在不同的文件中模板化模板实例化

windows - 如何使用 powershell 将反斜杠 CR LF 替换为 <br>

c++ - 在 Qt 中单击 Dialog 中的 pushButton 时使 MainWindow 可见

c++ - 交叉编译Qt to Raspberry Pi 3B+ addressbook (Protocol Buffer) - error symbol lookup error

c++ - 如何以 websocketpp::connection_hdl 为键实现 boost::unordered_map?

c++ - QDir currentPath 和 cd() 不工作?

c - Linux C 上的 HINTERNET InternetOpenUrl()

linux - 如何确定机器类型(i486、i586 或 i586)或处理器分类

c++ - QDialog创建后闪退