I have been using digital fortran 6.1 successfully for a number of years on Windows NT. I upgraded to XP and reloaded Fortran. My old executables work fine. When I attempt to build a newexecutable (nothing has changed in the code)it compiles and builds fine, but when I try to run it I get the above error message. I reloaded my fortran once and the problem went away, but then came back. All subsequent attempts at reloading the program, building new workspces etc. have not solved the problem.
If I specify 2 paths, separated by a semicolon (as instructed under Project/Properties/Linker/General/AdditionalLibraryDirectories), "CommandLine" shows it generates two /LIBPATH statements, so I had expected the Linker would parse the line and re-append the values, but it appears that the first path is being lost and only the 2nd one is used.
Has anyone else experienced this?
For Additional Library Directories, I'm entering
A DOS console program may be run interactively with user input provided by the keyboard, or in batch mode, in which case user input is provided from a file. In certain situations the program should behaved differently, and I want to check in which mode the program runs. We used to do this by using INQUIRE to check if UNIT 5 is connected to CONIN$, I believe this worked in older versions, but anyway it does not work now (UNIT 5 is connected to CONIN$ in both situations). I have gone through all the intrinsic functions, but cannot find any that solves this. So how should this be done?
With "Default" and "C, REFERENCE", I can build the DLL (with or without calling the IMSL routines), but LoadLibrary is failing. In my C code, when it fails I try and make sure that the file exists and can be read, and that appears to work just fine, so C recognizes that there's a file there, but not a DLL. Using any of the STDCALL options, I can't link in the IMSL libraries.
Using STDCALL, and commenting out the IMSL, it'll load the DLL.
Does this make ANY sense?
I'm getting alot of "already defined" LNK2005 errors during linking, and both libraries (libifcoremt and libifcore) where the definitions are defined are part of the v9 compiler:
libifcoremt.lib(for_reentrancy.obj) : error LNK2005: _for_set_reentrancy already defined in libifcore.lib(for_reentrancy.obj)
Is there something I need to toggle to avoid getting this error?
So, what's the trick? I get a page unavailable message when I click on the link for the updated compiler.
please give me more info re how to resolve this issue
I have one bigproblem... so, please, anyone can help me?
I want to call a Fortran Dll with a C# program. And I have problems with the calling sintax and with the compatibility of the arguments.
My C# program needs an array return from a Fortran Dll. The Fortran is like this:
Under Project | Properties dialog box in Fortran | External Procedures
when I set the Calling Convention to "Default" everything compiles fine, but LoadLibrary(...) fails from my C code. When I use "STDCALL, REFERENCE" or "C, REFERENCE", then the linker cannot find the IMSL libraries (because the linker appears to be translating the names).
In the exported function, I use
!DEC$ ATTRIBUTES C, DLLEXPORT::Clust
Could someone post an example on the above mentionned topic.
Thanks in advance.