QT5.5编译程序无法启动,报应用程序正常初始化 0xc0000135 失败问题解决一例

      QT5.5编译程序无法启动,报应用程序正常初始化 0xc0000135 失败问题解决一例

      昨天同事碰到一个古怪的问题,也许是程序员常见的问题,在自己的PC上,程序能够很好的运行,但是拷贝到别人的机器上就是不能运行。而且没有任何错误日志,直接就是没有任何反应。 然后同事把他的源码拿过来自己编译,编译好的程序,在开发环境中,启动也没有任何问题,但是使用windeployQT.exe打包所有的dll的时候,又出现了程序无法启动的问题。没有任何错误信息报告出来。 他就来找我来解决问题了。

      我用QT creator的调试功能,载入外部程序的方式来调试,终于在调试的时候,程序报出应用程序正常初始化 0xc0000135的错误信息。然后这个错误号,可能的原因很多,有些老鼠拉龟无从下手啊。但是既然在开发环境中没有问题,那么那些什么硬件问题可以排除,根据经验,应该还是缺少相对应的dll文件。 

     既然在开发环境中可以运行,那么我就先启动程序,然后在任务管理器中导出内核转储文件。再使用visual studio打开dmp文件,查看程序调用了哪些dll,dll文件的地址在哪里。最后发现缺少qtopengl.dll ,qtPrintSupport.dll两个文件,copy过去,问题解决。 该程序使用Qwt - Qt Widgets for Technical Applications,应该是使用了openGL的功能,但是windeployQT.exe打包程序并没有将这两个dll包含进来,可能是因为这两个dll是qwt那边调用的吧。

你可能感兴趣的:(QT5.5编译程序无法启动,报应用程序正常初始化 0xc0000135 失败问题解决一例)