释放不运行。这个应用程序没有启动。

时间:2021-03-20 20:53:25

My application works when it built in debug mode. But it does not run in release.

我的应用程序在构建调试模式时工作。但它不会在发布中运行。

This application failed to start because it could not find or load the Qt platform plugin "windows".

这个应用程序无法启动,因为它无法找到或加载Qt平台插件“windows”。

Reinstalling the application may fix this problem.

重新安装应用程序可以解决这个问题。

I copied dlls which the application required. I copied also qwindows.dll, qoffscreen.dll and libEGL.dll.

我复制了应用程序需要的dll。我还复制qwindows。dll,qoffscreen。dll和libEGL.dll。

But libEGL.dll located in C:\qt\5.3\msvc2013\bin and `C:Qt\ToolsQtCreator\bin'. I compiled my application by msvc-11.0(2012).

但libEGL。dll位于C:\qt\5.3\msvc2013\bin和' C: qt\ ToolsQtCreator\bin'。我用msvc-11.0(2012)编译了我的应用程序。

--

- - -

I put platforms folder to exe directory and now application runs but crashes immediately in ntdll.dll!771e56bc()

我将平台文件夹放到exe目录下,现在应用程序运行,但立即在ntdll.dll中崩溃。

Now my problem is similar to this one Why is ntdll.dll crashing my c++ executable?.

现在我的问题和这个类似,为什么是ntdll。dll破坏我的c++可执行文件?

Can I make debug working like release but save debug mode?

我可以让调试工作像发布一样,但保存调试模式吗?

-- Here is Application Verifier result for release mode. It does not happen for debug.

这里是发布模式的应用验证结果。它不会发生在调试中。

=======================================
VERIFIER STOP 00000006: pid 0xDF0: Corrupted heap pointer or using wrong heap. 

    00161000 : Heap handle used in the call.
    093F8FF8 : Heap block involved in the operation.
    00000004 : Size of the heap block.
    06441000 : Heap where block was originally allocated.


=======================================
This verifier stop is not continuable. Process will be terminated 
when you use the `go' debugger command.

=======================================

MyApp.exe has triggered a breakpoint.

AVRF: Noncontinuable verifier stop 00000006 encountered. Terminating process ... 
The thread 0x1724 has exited with code -1073740767 (0xc0000421).
The program '[3568] MyApp.exe' has exited with code -1073740767 (0xc0000421).

--

- - -

Here is a top of a call stack

这里是一个调用堆栈的顶部。

vrfcore.dll!6ae43466()  Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for vrfcore.dll]   
[External Code] 
qwindows.dll!0f0642cb() Unknown
qwindows.dll!0f065f8a() Unknown
qwindows.dll!0f0662bb() Unknown
Qt5Gui.dll!0f774cf3()   Unknown
Qt5Gui.dll!0f774e75()   Unknown
Qt5Gui.dll!0f7778d5()   Unknown

2 个解决方案

#1


2  

But libEGL.dll located in C:\qt\5.3\msvc2013\bin and `C:Qt\ToolsQtCreator\bin'

但libEGL。dll位于C:\qt\5.3\msvc2013\bin和' C: qt\ ToolsQtCreator\bin'

You must not take any DLLs from C:\Qt\Tools\QtCreator\ -- these are private DLLs for Qt Creator, and they are incompatible with your application.

您不能从C:\Qt\工具\QtCreator\——这些是Qt创建者的私有dll,它们与您的应用程序不兼容。

Only take DLLs from C:\Qt\5.3\msvc2013\bin and C:\Qt\5.3\msvc2013\plugins. Here is the required folder structure:

只需要从C:\Qt\5.3\msvc2013\bin和C:\Qt\5.3\msvc2013\插件中提取DLLs。这是所需的文件夹结构:

释放不运行。这个应用程序没有启动。(source: http://qt-project.org/wiki/Deploy_an_Application_on_Windows )

(来源:http://qt-project.org/wiki/Deploy_an_Application_on_Windows)

#2


1  

This sounds like either a DLL is missing or the application expects it in a different path.

这听起来好像是一个DLL丢失了,或者是应用程序在不同的路径中期望它。

a) Use the Dependency Walker on your release build executable to check whether all DLL dependencies can be resolved.

a)在您的版本构建可执行文件中使用依赖项Walker来检查是否所有的DLL依赖项都可以得到解决。

b) Make sure that your platform plugin files are at the right location. I think they need to be in a folder called "platforms" (not absolutely sure though).

b)确保你的平台插件文件在正确的位置。我认为他们需要在一个名为“平台”的文件夹中(但不是绝对确定)。

c) There is a post in the Qt forum about a similar problem. Maybe this helps you to track it down.

在Qt论坛上有一个类似的问题。也许这能帮助你找到它。

#1


2  

But libEGL.dll located in C:\qt\5.3\msvc2013\bin and `C:Qt\ToolsQtCreator\bin'

但libEGL。dll位于C:\qt\5.3\msvc2013\bin和' C: qt\ ToolsQtCreator\bin'

You must not take any DLLs from C:\Qt\Tools\QtCreator\ -- these are private DLLs for Qt Creator, and they are incompatible with your application.

您不能从C:\Qt\工具\QtCreator\——这些是Qt创建者的私有dll,它们与您的应用程序不兼容。

Only take DLLs from C:\Qt\5.3\msvc2013\bin and C:\Qt\5.3\msvc2013\plugins. Here is the required folder structure:

只需要从C:\Qt\5.3\msvc2013\bin和C:\Qt\5.3\msvc2013\插件中提取DLLs。这是所需的文件夹结构:

释放不运行。这个应用程序没有启动。(source: http://qt-project.org/wiki/Deploy_an_Application_on_Windows )

(来源:http://qt-project.org/wiki/Deploy_an_Application_on_Windows)

#2


1  

This sounds like either a DLL is missing or the application expects it in a different path.

这听起来好像是一个DLL丢失了,或者是应用程序在不同的路径中期望它。

a) Use the Dependency Walker on your release build executable to check whether all DLL dependencies can be resolved.

a)在您的版本构建可执行文件中使用依赖项Walker来检查是否所有的DLL依赖项都可以得到解决。

b) Make sure that your platform plugin files are at the right location. I think they need to be in a folder called "platforms" (not absolutely sure though).

b)确保你的平台插件文件在正确的位置。我认为他们需要在一个名为“平台”的文件夹中(但不是绝对确定)。

c) There is a post in the Qt forum about a similar problem. Maybe this helps you to track it down.

在Qt论坛上有一个类似的问题。也许这能帮助你找到它。