Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Forum Updated on Feb 6th

    [Solved] Access violation when creating a Qt Quick component

    QML and Qt Quick
    1
    2
    1366
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jrlaff last edited by

      Hi,

      I have a strange access violation when using Qt Quick on a windows 7 machine.

      First, I am using Qt version 5.3.1. When calling QQmlComponent::create() to create a component from a local Qml file, the application crashes.

      Two strange observations:

      1. The crash is not systematic. It crashes +- 4 times out of 5.
      2. The same program runs fine on another machine (my development workstation, 64-bit, with native OpenGL drivers I guess) and crashes on target machines (32-bit, with ANGLE Open GL ES emulation libraries).

      I have tried several things already, and went to the conclusion that the crash depends on the Qml file content. If I simplify it (so that only a simple rectangle is displayed), it runs fine. Starting from that point, I tried to isolate the component that causes the crash. However, it seems that either it depends on the complexity of the Qml code, or several components are in cause, as every time I find one that produces a crash, un-commenting the other ones brings another crash.

      My questions are:

      1. Could it be due to the fact that the target machines use the ANGLE emulation libraries?
      2. Is there any known bug in Qt that would produce a crash on QQmlComponent creation? I have tried to create the component from a Loader in the Qml code, with the same crash result.
      3. Is there any Qt log that I could enable (other than the custom message handler) to help diagnose the problem?

      Thank you.

      1 Reply Last reply Reply Quote 0
      • J
        jrlaff last edited by

        I figured it out.

        It turns out that I used some version of the following DLL files:

        Qt5Qml.dll
        Qt5Quick.dll
        Qt5QuickParticles.dll
        Qt5Core.dll
        Qt5Gui.dll
        Qt5Network.dll
        icuuc52.dll
        icudt52.dll
        icuin52.dll
        libEGL.dll
        libGLESv2.dll

        These files were copied from this location: D:\Qt\Qt5.3.1\5.3\msvc2013\bin. However, the same files also exist in D:\Qt\Qt5.3.1\Tools\QtCreator\bin. While they are tagged with the same version, some have the same size, but different content.

        Using the files from the first location produces the crash (on the target PC only, not on my workstation), while copying them from the second location runs fine everywhere.

        I am quite unlucky with these DLLs, as previously I already had text rendering issues with libEGL.dll and libGLESv2.dll.

        I wonder why two "versions" of these files exist.

        1 Reply Last reply Reply Quote 0
        • First post
          Last post