我的程序无法在某些电脑上运行

My program doesn't run on some PCs

本文关键字:电脑 运行 程序 我的      更新时间:2023-10-16

我正在一个项目中使用C++、OpenCV和Visual Studio构建一个带有计算机视觉的应用程序。我不是部署程序在其他电脑上使用的专家。

我制作了一个程序,需要分发给一定数量的人,但我无法在我想要的所有计算机上运行。该程序是使用Visual Studio 2015编写的,它是一个MFC项目,代码是用C++编写的,因为我使用的是OpenCV。

当它完成后,我试图在另一台电脑上运行它,但我意识到它无法打开。我在网上查了一下,发现我需要静态链接库,所以我做了。此外,当我寻找信息时,我发现Visual Studio 2015构建了它的项目,这样你就可以在Win7到Win10的机器上运行程序。当我了解到这一点时,我试着在运行Windows 7、8、8.1和10的电脑上打开它。我在大约20台电脑上测试了我的程序。

结果如何?我无法使它在Windows 7上工作,每次我尝试打开它时都会显示错误ucrtbase.terminate api-ms-win-crt-runtime-l1-1-0.dll。它也没有在一台装有Windows 8的机器上打开而不显示任何错误消息,但它在大多数装有win 8.1和win 10的机器上都打开了。问题是">最多";有一些电脑(Win 8.1和10)我无法打开我的程序。我发现有时它会在任务管理器中显示不到一秒钟,然后消失。压力最大的是它没有告诉我问题出在哪里,也没有显示任何错误信息。它就是打不开。

我试着使用Dependency Walker(既在我的电脑上,也在我无法运行程序的电脑上)来查看是否缺少了什么,我得到了一个系统找不到的文件列表,下面是一个例子:列表1/11。令人好奇的是,尽管Dependency Walker(DW)告诉我它可能有问题,但我的程序在我的计算机上执行得很好,并且在我可以打开它的计算机上运行得很好。这表明DW没有找到我遇到的确切错误。

我尝试过的另一件事是比较我在电脑上安装的东西,并将它们安装在我想执行程序的电脑上。我尝试安装.NET Framework 4.6.1,只是因为VS 2015说我的项目是使用它构建的(我在电脑中安装了它,而另一台没有。我还尝试了.NET 4.6.1 SDK)。一切都没有改变。

看看这里:

https://msdn.microsoft.com/de-de/library/ms235299.aspx

快速而肮脏的方法是从redist目录中复制DLL。对于我的MS VS 2013,它隐藏在VS安装目录下:

VCredistx86

VCredistx64
...

这取决于您的应用程序。