We're trying to get a Fortran dll to run on a PC running the LabVIEW real time 12.0 operating system. The dll is compiled using Visual Studio 2008 with Intel Fortran v10.0.025. We've successfully compiled and ran a simple Fortran dll on the real time computer. However, we can't get a more complex Fortran dll to successfully run on the real time computer (it works fine on Windows 7). We've spoken with technical support from LabVIEW, and their response was that the real time computer does not have all of the standard libraries that are normally available on Windows computers. Using Dependency Walker and LabVIEW's DLL Checker, we've discovered that the complex Fortran dll loads libifcoremd.dll as a dependency, which in turn loads imagehlp.dll as a dependency and we've identified imagehlp.dll as the culprit. Just placing imagehlp.dll and its dependencies on the real time computer reports a generic error message that there was an error loading a dll. Is there a way to cull out imagehlp.dll while keeping the functionality in libifcoremd.dll?
We've tried eliminating the dependency on imagehlp.dll by compiling in Release and disabling all debug and tracing options, but imagehlp.dll is still listed as a dependency. We've also tried setting "Ignore Specific Library" to ignore imagehlp.dll, but it gets loaded anyway.
We've also tried statically compiling the runtime libraries. We did this by changing the project settings to compile as Multithreaded. Then we added libifcoremt.lib and libmmt.lib under "Additional Dependencies." However, there is no imagehlp.lib to statically compile, so imagehlp.dll is still a dependency. We tried setting imagehlp.dll to be delay loaded and then included delayimp.lib. But it is still failing to pass DLL Checker.