Strand7 is a structural package out of Western Australia -- it has the ability to allow an IF program to link to the Strand7 models. The Strand7 includes a DLL and when I compile the program in VS 2013 and the latest IF - I get the message - cannot load ST7API.DLL. This file is stored in the directory
C:\Program Files (x86)\Strand7 R24\Bin
The SLN file had to be automatically upgraded from an older VS version.
I looked through the properties and could not see any reference to the DLL file
/OUT:"Debug\St7APIDemo.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"Debug\St7APIDemo.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Program Files (x86)\Strand7 R24\API\Example Code\Intel Visual Fortran\Debug\St7APIDemo.pdb" /SUBSYSTEM:CONSOLE /IMPLIB:"C:\Program Files (x86)\Strand7 R24\API\Example Code\Intel Visual Fortran\Debug\St7APIDemo.lib"
This is the linker command line: Help?
PS: is DFLIB - Digital Fortran ?
USE St7APICall USE DFLIB USE KERNEL32 LOGICAL Loaded PtrSt7API=LOADLIBRARY("St7API.dll"C) IF (PtrSt7API == 0) THEN Loaded = .FALSE. RETURN ELSE Loaded = .TRUE. ENDIF
! Load the API CALL LoadSt7API(Loaded) IF (Loaded) then WRITE(*,*) "ST7API.DLL loaded successfully." ELSE WRITE(*,*) "Cannot load ST7API.DLL." WRITE(*,*) "Press <Enter>" READ(*,*) STOP ENDIF
The reference to the DLL is in the Fortran code, not in the link step. The function LoadLibrary loads the DLL whenever it is called instead of at the start-up of the program.
As for DFLIB, see the table near the end of https://software.intel.com/en-us/articles/migrating-from-compaq-visual-fortran Intel Visual Fortran still supplies the various "DF" modules (which do indeed stand for Digital Fortran).