I am getting the following exception: "Unable to load DLL: The operating system cannot run. (Exception from HRESULT: 0x800700B6)"

-3

This happens when P/Invoking into Intel IPP library. This library in-turn relies on OpenMP.

Here's what I've tried: ​http://software.intel.com/en-us/articles/opm-abort-initializing-libguide40dll/

Should resolve the exception about using two versions of OpenMP together (libguide40.dll and libiomp5md.dll). Removing a local copy of libguide40.dll did not solve the issue. Could you help me to track it down?

I am trying dir /s libguide40.dll: there is no more instances of that DLL, but I am still getting the exception.

Details: I am using P/Invoke generated code as provided by Intel in their samples for IPP.

c#
.net
pinvoke
openmp
intel-ipp
asked on Stack Overflow Mar 18, 2013 by GregC • edited Mar 19, 2013 by GregC

1 Answer

2
  1. The OpenMP DLL that I was using on target machine had incorrect number of bytes in it (probably a network file transfer SNAFU). The way to avoid this mess is to use an archive or MD5.

  2. It was still broken... I had to ensure that initialization of IPP runs only once for the whole application. I used a static Lazy member.

Thanks for all the help!

answered on Stack Overflow Mar 18, 2013 by GregC • edited Mar 19, 2013 by GregC

User contributions licensed under CC BY-SA 3.0