C# 我得到了以下例外情况:“";无法加载DLL:操作系统无法运行。(HRESULT的例外:0x800700B6)“;

C# 我得到了以下例外情况:“";无法加载DLL:操作系统无法运行。(HRESULT的例外:0x800700B6)“;,c#,.net,pinvoke,openmp,intel-ipp,C#,.net,Pinvoke,Openmp,Intel Ipp,当调用英特尔IPP库时会发生这种情况。该库反过来依赖于OpenMP 以下是我尝试过的: ​ 应解决有关同时使用两个版本的OpenMP(libguide40.dll和libiomp5md.dll)的异常。删除libguide40.dll的本地副本并不能解决此问题。你能帮我找到它吗 我正在尝试dir/s libguide40.dll:不再有该dll的实例,但我仍然得到异常 详细信息:我正在使用英特尔在IPP示例中提供的p/Invoke生成的代码 我在目标计算机上使用的OpenMP DLL中的字节数不

当调用英特尔IPP库时会发生这种情况。该库反过来依赖于OpenMP

以下是我尝试过的: ​

应解决有关同时使用两个版本的OpenMP(libguide40.dll和libiomp5md.dll)的异常。删除libguide40.dll的本地副本并不能解决此问题。你能帮我找到它吗

我正在尝试
dir/s libguide40.dll
:不再有该dll的实例,但我仍然得到异常

详细信息:我正在使用英特尔在IPP示例中提供的p/Invoke生成的代码

  • 我在目标计算机上使用的OpenMP DLL中的字节数不正确(可能是网络文件传输SNAFU)。避免这种混乱的方法是使用归档或MD5

  • 它还是坏了。。。我必须确保IPP的初始化在整个应用程序中只运行一次。我使用了一个静态惰性成员


  • 谢谢你的帮助

    很难说你为什么会这样,如果有人看不到你是如何消费DLL的,那么真的没有人能在这么少的事情上帮助你。您是否仔细检查了DLL是否在您认为的位置?您是否仔细检查了路径或您认为控制加载程序查找DLL位置的任何设置?您是在硬编码DLL的名称或路径,还是在代码中计算它们?如果是在代码中,您是否使用调试器确认它是正确的?链接没有解释,你没有链接任何东西。我们无法判断这是borken[DllImport]声明,按序号指定导出是不寻常的,还是您遇到了DLL地狱问题。顺便说一句,让我们猜测是没有意义的。错误是error_INVALID_ORDINAL(后面可能跟一个数字),您可以尝试depends.exe并递归检查dll依赖项。StackOverflow关于这类错误的信息非常少,所以我研究了这个错误,最初是作为一个越来越详细的问题,然后是答案。希望有一天能对某人有所帮助。我有一个类似的问题,用它解决的替代Visual C++ 2008重新分配。