在没有 Visual Studio 的计算机上运行 opencv dll

Posted

技术标签:

【中文标题】在没有 Visual Studio 的计算机上运行 opencv dll【英文标题】:running opencv dll on a computer with no visual studio 【发布时间】:2012-07-18 23:08:07 【问题描述】:

我有一个在 VS2010 中使用 opencv 2.4 生成的 64 位 dll (Imageloc.dll)。在 Windows 7 上调用它时工作正常。 但是,当我在 Windows 2000 服务器上运行它时,它给了我

未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集“Imageloc.dll”或其依赖项之一。指定的模块无法找到。 在 Test.Program.Main(String[] args)

我在 Windows 2000 上设置了如下环境路径值,就像 Windows 7 一样

C:\Applications\opencv\build\x64\vc10\bin; C:\Applications\opencv\build\common\tbb\intel64\vc10;

openCv 2.4 产品安装在 c:\Applications\opencv

Visual Studio 安装在 Windows 7 上,但未安装在 Windows 2000 上。

感谢任何帮助。

更新: 我在另一台装有 Windows 7 但没有 Visual Studio 的计算机上运行它,它给了我同样的错误。我用 Visual Studio 在 Windows 2000 上运行它,它工作正常。 Visual Studio 如何使其工作?

dll的程序是用c++-cli编写的,编译在/MD中。 会不会和 C 运行时库的某些 dll 或 CLR dll 有关?

【问题讨论】:

【参考方案1】:

我想您在任何 32 位操作系统上运行 64 位 DLL 都会遇到问题,而不仅仅是 Windows 2000...

【讨论】:

我使用的 Windows 2000 是在 64 位机器上 有一个 IA64 版本的 Windows 2000,但也无法运行您的 x64 DLL。 我在另一台装有 Windows 7 但没有 Visual Studio 的计算机上运行它,它给了我同样的错误。我用 Visual Studio 在 Windows 2000 上运行它,它工作正常。为什么安装了 Visual Studio 才能让它工作?【参考方案2】:

如果在 Win2K 机器上安装 Visual Studio 可以使您的程序正常运行,那么您可能缺少 Visual C++ 运行时。您可以将 C++ 代码设置为不需要运行时进行编译,但对于单个部署,安装运行时同样容易。

x86:http://www.microsoft.com/en-us/download/details.aspx?id=5555

x64:http://www.microsoft.com/en-us/download/details.aspx?id=14632

【讨论】:

【参考方案3】:

这是因为它缺少一个在编译期间加载的dll /clr /md options

【讨论】:

【参考方案4】:

这次仔细阅读了这个问题后,我可以指出 Visual Studio 2010 应用程序不会在早于 Windows XP Service Pack 2 的任何设备上运行,因为旧版本的 Windows 没有它使用的所有 API .但是,answers 到 Issue using Visual Studio 2010 compiled C++ DLL in Windows 2000 之一确实建议了一种可能的解决方法,因为您可以提供一个存根库来实现缺少的导入。

【讨论】:

以上是关于在没有 Visual Studio 的计算机上运行 opencv dll的主要内容,如果未能解决你的问题,请参考以下文章

如何在未安装Visual Studio的计算机上安装Windows服务?

关于 MSVSMON.EXE 的 Visual Studio 调试错误似乎没有运行

编辑:便携式 Visual Studio 代码 [关闭]

Visual Studio 2010 运行时库

错误记录安装 Visual Studio 2013 中文语言包报错 ( 需要 Microsoft Visual Studio Test Agent , 但此计算机上并为安装它 )

远程调试 .NET 代码 Visual Studio 2010