Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29230 Discussions

File missing on 2015 compiled XP target

Lewallen__Roy
Novice
790 Views

A DLL I compiled with IVF 2015 (on a 64 bit Windows 7 system with Visual Studio 2013) is failing on some XP (SP3) systems. It was compiled with "/SUBSYSTEM:WINDOWS,"5.1"" on the linker line and targeted to 32 bit systems. The Visual Studio 2013 VC runtime installer is run as part of the DLL installation process.

The DLL, installed normally with dependent files and with the VS 2013 runtime, was tested on a completely virgin XP SP3 system and found to work as it should. It also works on a significant number of XP SP3 systems. However, there have been a couple (so far) failures with "file not found" errors indicating that some dependent file is missing or defective -- the DLL itself is definitely present. These have occurred only on particular XP SP3 systems and happen on those systems each time the DLL is called.  (The DLL is also used on other Windows systems but so far this problem has been reported only on XP SP3.) I've had affected users run Dependency Walker and the output is identical to what I see on my virgin XP SP3 test system. I've also had them re-run the VS 2013 runtime installer, since its absence produces the same symptom. None of these approaches has been productive.

Because all the requisite dependent files are present on a virgin system but apparently not on the problem systems, it seems that one or more must have been deleted or perhaps replaced by some incompatible version. Or is there some other possible cause for this symptom?

Can anyone possibly shed any light on this?

Thanks!

0 Kudos
3 Replies
Steven_L_Intel1
Employee
790 Views

We need more details - a screenshot of the error would be most helpful. Missing DLLs usually trigger a rather detailed message, one that doesn't say "file not found". What is the complete and exact text of the error?  Is this DLL called from languages other than Fortran? Which? Is this error coming from a non-Fortran language such as Visual BASIC? (VB tends to give misleading error messages for DLL issues and, because it loads DLLs dynamically, Dependency Walker is often not helpful here.)

0 Kudos
Lewallen__Roy
Novice
790 Views

The DLL is being called from Visual Basic 6, which returns Error 53: File Not Found. That's the normal response when a dependent file is missing. There's no screen message from the system -- the calling program traps the error, reports it to the user, and ends.

In troubleshooting another problem (posted on this forum) which I suspect is CPU related, I dusted off an old AMD Althon machine and tried running my program under both XP (SP3) and Vista (SP2) on that machine. The same error occurred (File Not Found) in both cases. The DLL is compiled to require run time DLLs so just to make sure I hadn't failed to include some necessary one in the installer package, I copied all the mkl and compiler redistributable dlls into the program directory where both the DLL and calling program reside. Same result. The program simply won't run on the Athlon machine.

I'll ask the users who are seeing the error what kind of CPU their machines have and report back.

Roy

0 Kudos
Steven_L_Intel1
Employee
790 Views

There might be some MSVC DLL you are missing, but you say that Dependency Walker doesn't complain on that system. Since this DLL is being called from VB, my advice is to set the DLL project property Fortran > Libraries > Use Runtime Library to "Multithreaded", not "Multithread DLL". This will eliminate dependency on DLLs (unless you also use OpenMP or coarrays, which is unlikely.)

I'm somewhat unclear about the use of /SUBSYSTEM on DLLs - I don't think it matters.

Have you run our redistributable installer on the XP system? I wonder if you missed a DLL that gets dynamically loaded by MKL. Can you write a simple Fortran program that calls your DLL to see if it loads on the system? I am trying to exclude dependencies.

0 Kudos
Reply