Ano*_*yne 6 c++ windows dll windows-10-desktop
我们发布了一个Windows桌面应用程序(使用带有v120_xp平台工具集的Visual C++ 2013构建),它在Windows 10上运行良好,但我们已经开始接收安装了"Threshold 2"更新的用户的报告,我们的应用程序现在无法更新开始,显示以下错误消息:
应用程序无法正确启动(0xc0000142).单击"确定"关闭应用程序.
错误代码是STATUS_DLL_INIT_FAILED,因此我们可能正在寻找无法初始化的DLL.
我们已经尝试通过观察在调试器中启动的应用程序并使用Process Monitor查看正在加载哪些DLL来对此进行故障排除.加载的最后一个DLL(在安装了阈值2的计算机上)是"davhlpr.dll".当我们在没有阈值2的Windows 10上观看我们的应用程序启动时,它开始时根本没有加载该DLL.这表明该问题可能与davhlpr.dll有关,但我们的代码并没有明确依赖于该DLL,我不知道它是什么.
有没有人见过这样的东西?
有没有人对我们如何解决这个问题有任何想法?在尝试调试器和Process Monitor之后,我没有想法.
我们最终走到了最底层.我们采取的方法如下:
长话短说:事实证明,失败是由于一个名为"fwbase.dll"的Windows组件(显然是Windows防火墙的一部分),comdlg32.dll因某种原因试图加载该组件.我们的应用程序包括一个名为"fwBase.dll"的组件(AMD Framewave库的一部分),Windows加载器可能没有尝试加载fwbase.dll,因为它认为它已经加载了.此后不久发生了灾难.
此时,我不确定这是Windows中的错误还是什么,但我们通过重命名fwBase.dll来解决它.
| 归档时间: |
|
| 查看次数: |
1788 次 |
| 最近记录: |