【问题标题】:wintab32.dll is missing, causes crash?wintab32.dll 丢失,导致崩溃?
【发布时间】:2016-04-23 22:56:53
【问题描述】:

我使用 MinGW 5.3.0 编译器从源代码构建了 Qt 5.5.1,用于 32 位和 64 位。 如果我运行使用这些创建的库部署的应用程序,它可以正常工作。 但是,如果我运行 Dependency Walker,它会显示 wintab32.dll 的黄色问号符号,这在我的 Windows 7 PC 上不存在。它显示的错误是

LoadLibraryW("C:\Windows\system32\wintab32.dll") called from "QT5CORE.DLL" at address 0x0000000000646E4E.

LoadLibraryW("C:\Windows\system32\wintab32.dll") returned NULL. Error: The specified module could not be found (126).

我应该担心部署我的应用程序,还是因为我在非平板电脑上运行而收到此错误?如果我的构建已损坏,请告诉我。

我在构建 Qt 时使用以下参数进行配置:

cd c:\Qt\5.5.1\32\

SET PATH=C:\Qt\5.5.1\32\qt-everywhere-opensource-src-5.5.1\qtbase\bin;C:\Qt\5.5.1\32\qt-everywhere-opensource-src-5.5.1\gnuwin32\bin;C:\MinGW\5.3.0\mingw32\bin;%PATH%

SET QMAKESPEC=win32-g++

qt-everywhere-opensource-src-5.5.1\configure -debug-and-release -opensource -no-opengl -no-openssl -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtconnectivity -skip qtdeclarative -skip qtdoc -skip qtenginio -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmacextras -skip qtmultimedia -skip qtquick1 -skip qtquickcontrols -skip qtscript -skip qtsensors -skip qtserialport -skip qtsvg -skip qttools -skip qttranslations -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebkit -skip qtwebkit-examples -skip qtwebsockets -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -confirm-license -nomake tests -nomake examples

mingw32-make

【问题讨论】:

    标签: c++ qt dependencies mingw


    【解决方案1】:

    我从Qt 5.5的源代码中找到了这段文字,qwindowstabletsupport.cpp

    bool QWindowsWinTab32DLL::init()
    {
        if (wTInfo)
            return true;
        QSystemLibrary library(QStringLiteral("wintab32"));
    

    所以它可能与绘图板有关。如果这个库可以加载到内存中,Qt 库可能会改变它的行为(用户输入等),但如果不能加载它可能没问题。

    当使用依赖程序打开可执行文件或库(文件/打开)时,会出现带有文本的错误对话框

    处理“\path to library\X.dll”时检测到错误请参阅 日志文件以获取详细信息。

    如果找不到可执行文件或库绝对需要的库。

    【讨论】:

    • 所以这应该被报告为 Qt 错误吗?这个电话应该只在平板电脑上进行,那么为什么要在 PC 上进行。
    • @Cool_Coder 如果只有 Dependency walker 抱怨,这不是错误。一个程序可能只是通过尝试加载一个可能不存在的库来检查它是否可以提供一些附加功能。
    • 但是黄色的问题意味着dll是必需的而不是可选的,对吧?例如,程序运行所需的插件没有显示在dependency walker中,因此插件不会出错。这个不应该也差不多吧?
    • @Cool_Coder 当依赖程序发现程序绝对需要的库丢失时,它会弹出一个对话框,其中包含文本“处理时检测到错误“/X.dll”有关详细信息,请参阅日志文件。”
    • 是的,它显示了 32 位分析的对话框。对于 64 位,它只会让我的程序崩溃。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 2020-12-02
    • 2013-11-11
    相关资源
    最近更新 更多