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

Strand7

JohnNichols
Valued Contributor III
675 Views

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 ?

Ta

John

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

 

0 Kudos
4 Replies
Arjen_Markus
Honored Contributor I
675 Views

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.

0 Kudos
jimdempseyatthecove
Honored Contributor III
675 Views

You should read https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx which explains the search order for DLL's in great detail.

Jim Dempsey

0 Kudos
Steven_L_Intel1
Employee
675 Views

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).

0 Kudos
JohnNichols
Valued Contributor III
675 Views

I sent a note off the Strand7 people asking for help -- ah the joys

0 Kudos
Reply