我正在使用C ++,OpenCV和Visual Studio在使用Computer Vision构建应用程序的项目中工作。我不是部署程序的专家,而是在其他PC上使用它们。
我已经制作了一个程序,我需要分发给一定数量的人,而我无法在我想要的所有计算机上运行它。该程序是使用Visual Studio 2015编写的,它是一个MFC项目,代码是用C ++编写的,因为我使用的是OpenCV。
当它完成后,我试图在另一台计算机上运行它,我意识到它无法打开。我查看了互联网,发现我需要静态链接库,所以我做了。此外,当我在寻找信息时,我发现Visual Studio 2015构建了它的项目,因此您可以在Win7到Win10的机器上运行程序。当我了解到这一点时,我试图在运行Windows 7,8,8.1和10的PC上打开它。我在20台计算机上测试了我的程序,给予或接受。
结果?我无法使其适用于Windows 7,每次都显示错误 ucrtbase.terminate api-ms-win-crt-runtime-l1-1-0.dll 我试着打开它。它也没有在Windows 8的一台机器上打开而没有显示任何错误消息,但是 DID 在具有Win 8.1和Win 10的大多数机器上打开。是“最”;有一些PC(Win 8.1和10)我无法打开我的程序。我发现有时它会在任务管理器中显示不到一秒钟然后消失。最紧张的是它没有告诉我问题是什么,它没有显示任何错误信息。它不会打开。
我尝试使用Dependency Walker(我的电脑和其中一个我无法运行我的程序)查看是否有遗漏的东西,我得到了一个系统无法找到的长期文件列表,这是一个例子: List 1/11。令人好奇的是我的程序在我的计算机上以及可以打开它的那些程序执行得很好,即使Dependency Walker(DW)告诉我它可能存在问题。这表明DW没有找到我遇到的确切错误。
我尝试过的另一件事是比较我在计算机上安装的东西,并将它们安装在我想要执行程序的程序上。我尝试安装.NET Framework 4.6.1只是因为VS 2015说我的项目是使用它构建的(我将它安装在我的PC上,而另一个则不是。我也尝试使用.NET 4.6.1 SDK)。什么都没有改变。
答案 0 :(得分:0)
请看这里:
https://msdn.microsoft.com/de-de/library/ms235299.aspx
快速而肮脏的方法是从redist目录中复制DLL。对于我的MS VS 2013,它隐藏在VS安装目录下:
VC\redist\x86
或
VC\redist\x64
...
取决于您的申请。