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

running opencv dll on a computer with no visual studio

本文关键字:运行 opencv dll 计算机 visualstudio      更新时间:2023-10-16

我在VS2010中使用opencv 2.4生成了一个64位dll(Imageloc.dll)。当在Windows7上调用它时,它工作得很好。然而,当我在windows2000服务器上运行它时,它会给我

未处理的异常: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;

安装在c:\Applications\openCv 中的openCv 2.4产品

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

感谢您的帮助。

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

dll的程序是用c++-cli编写的,并在/MD中编译。它可能与C运行库的某些dll或CLR dll有关吗?

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

如果在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

这是因为它缺少编译期间加载的dll/clr/md选项

这次仔细阅读了这个问题后,我可以指出Visual Studio 2010应用程序不会在Windows XP Service Pack 2之前的任何版本上运行,因为旧版本的Windows没有它使用的所有API。然而,在Windows 2000中使用Visual Studio 2010编译的C++DLL解决问题的答案之一确实建议了一种可能的解决方法,即您可以提供一个实现缺失导入的存根库。