在没有 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 2013 中文语言包报错 ( 需要 Microsoft Visual Studio Test Agent , 但此计算机上并为安装它 )