c++ - 我的程序无法在某些 PC 上运行

标签 c++ opencv deployment visual-studio-2015 mfc

我正在从事一个项目,该项目使用 C++、OpenCV 和 Visual Studio 构建具有计算机视觉的应用程序。我不是部署程序以在其他 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(在我的 PC 上和其中一台我无法运行我的程序的电脑上)查看是否缺少某些东西,我得到了一个系统无法找到的非常长的文件列表,这是一个例子: List 1/11 .奇怪的是,即使 Dependency Walker (DW) 告诉我它可能存在问题,但我的程序在我的计算机上以及在我可以打开它的那些计算机上执行得很好。这表明 DW 没有找到我遇到的确切错误。

我尝试过的另一件事是比较我在我的计算机上安装的东西,并将它们安装在我想在其上执行我的程序的东西上。我尝试安装 .NET Framework 4.6.1 只是因为 VS 2015 说我的项目是使用它构建的(我将它安装在我的 PC 中而另一个没有。我也尝试使用 .NET 4.6.1 SDK)。什么都没有改变。

最佳答案

看看这里:

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

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

VC\redist\x86

VC\redist\x64
...

这取决于您的应用。

关于c++ - 我的程序无法在某些 PC 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37669957/

相关文章:

c++ - 有哪些 Makefile 生成工具?

c++ - 将 PrintWindow 转换为 BitBlt 以捕获特定窗口的屏幕截图

c++ - 图像处理 : Algorithm Improvement for 'Coca-Cola Can' Recognition

python - scipy.signal.sepfir2d 中的类型错误

deployment - Orchard cms 多部署环境

tomcat - 无法部署 Talend 作业 Web 服务

c# - 从网络共享运行 C#.net winForms 的性能考虑

c++ - 我应该使用哪个版本的 MinGW

c++ - 为什么字符串文字上的 decltype 不产生数组类型?

python - 在 OpenCV python 中将白色像素转换为黑色