我写了一个基于MFC的C++程序,虽然发布版本在目标机器上运行顺利,但调试版本不能。它出现Assert失败,如以下截图所示:
我需要这个调试版本在目标机器上运行,这样我就可以通过从我的开发机器附加到它来远程调试它。
我使用了新版本的依赖步行者(https://github.com/lucasg/Dependencies),但它给出了与发行版相同的结果(没有红色警报),即使发行版可以运行,调试版不能。依赖步行者显示如下:(第二个截图)
因为在我安装了Visual Studio 2022(MFC 143)的开发机器上,它在调试版本和发布版本中都运行得很好。
而当我将其部署到目标机器时,发布版本运行正常,但调试版本失败。即使我安装了vc_redist.x64.exe(从我的开发机器复制),并复制了相关的mfc140d.dll,msvcp140d.dll,vcruntime140d.dll和vcruntime140_1d.dll。实际上,我将所有文件复制到同一目标目录下的目标机器:
谁能告诉我哪里出了问题?我不知道从哪里调试。
非常感谢.
1条答案
按热度按时间y3bcpkx11#
我不认为Dependency步行者对你需要的东西很有用。Assert对话框暗示程序成功启动,但是遇到了一个意外的状态。因此,你已经满足了所有的运行时依赖关系。
我的机器上的afxwin2.inl的第795行是这样的:
基本上,有一个Assert,窗口上的控件(组合框)仍然有效。也许有些代码在窗口关闭后仍然试图做一些事情。
所有这些都是解决方案。