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

Error: DLL not in project address space

Borje_Emilsson
Beginner
754 Views

I am writing a DLL, say be.dll, that exports two routines, say name1 and name2. The latter names are required (forced names) by a calling program. The caller, which is multithreaded,has a dialog window, where be.dll is entered (clicked upon) (The name may be selected by the user, but name1 and name2 must be the required ones)

MyDLL initializes with a call to DllMain. Inside name1 I call srand which requires use of the module ifport provided by IVF.

When the calling program calls name1, the following error message is received :
"Can not find Fortran libifcore.DLL in process address space"

The calling program is proprietary so I cannot link any of the providedlibifcore*.lib to it

Thus, somehow I must get the necessary DLL into the project address space. I'm recommended not to use any LoadLibrary calls at all in the DllMain documentation at MSDN2

What are Your recommendations ?
Borje Emilsson

0 Kudos
3 Replies
Steven_L_Intel1
Employee
754 Views
This problem, which I saw in 9.0, seems to be resolved in version 10. Basically, if you bring in libifport.dll, it requires that the executable has been linked to the DLL libraries so that libifcore.dll is seen. I suppose the other way to solve this is to have your DLL do something that uses libifcore.dll (an internal write, for example) so that it will also be loaded.
0 Kudos
Borje_Emilsson
Beginner
754 Views

Thanks for Your help, Steve / Brje 070917

1. I am using v 10.0.026
2. As explained in my question, alt 1 may not be selected for proprietary reasons
3. ... so I selected alt 2, which worked fined. However, it is not enough just to
"use ifcore", You must indeed call a routine that is inside the lib

Best regards / be

0 Kudos
Steven_L_Intel1
Employee
754 Views
I agree that USE IFCORE is not sufficient. You still see this in 10.0? Interesting - I'll have to try that again. But even so, at best you'd get a different message since libifport.dll requires libifcore.dll to be loaded.
0 Kudos
Reply