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

Fortran to Distribute

sandra_shs
Beginner
582 Views

I wrote a DotNet solution that uses fortran dlls. The software works fine on development enviroment but fails on users enviroment when a fortran code calls GETDAT and GETTIM functions. I have dotnetfx.exe instaled on user enviroment but (of course) not the development enviroment. The error said:

"System.IO.FileNotFoundException: It was not possible to find the module specified. (Exception from HRESULT: 0x8007007E)"

When I cut the GETDAT and GETTIM calls, the software executes well, so I conclude that the arquiteture is not my problem. I distributed all dlls listed as distributed by fortran documentation but even though the module is not founded.

What I am missing?

Thanks,

Sandra

0 Kudos
3 Replies
Steven_L_Intel1
Employee
582 Views
First, make sure that you have built your DLL in a Release configuration, not Debug. Second, where did you put the Fortran run-time DLLs such as libifcoremd.dll? They need to go in a folder listed on the PATH environment variable or in the Windows folder.

For your case, it may be simpler to change the "Libraries > Use run-time library" property of the Fortran project to "Multithreaded" and not "Multithreaded DLL". Then you will have no dependencies on DLLs.
0 Kudos
sandra_shs
Beginner
582 Views

Steve,

Thanks for your answer! My dll was build in release mode and fortrans dlls are in the samefolder of my .exe and the path is on the PATH environment.

I was compiling the dll as "Multithreaded DLL". Now I change this to "Multithreaded" as you said. Butnow I receive an error: "error LNK2005: __amsg_exit already defined in MSVCRT.lib(MSVCR80.dll)" on filelibcmt.lib. I tried to set libcmt.lib as "ignore specific library" option to solve the link problem but its cause a libifcoremt.lib fail. Do you have any sugestion?

Thanks in advance,

Sandra

0 Kudos
Steven_L_Intel1
Employee
582 Views
Is your DLL a mixed-language application? If so, you must set the run-time library property of the C/C++ project to also be "Multithreaded".
0 Kudos
Reply