Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29253 ディスカッション

Strand7

JohnNichols
高評価コントリビューター III
1,679件の閲覧回数

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 件の賞賛
4 返答(返信)
Arjen_Markus
名誉コントリビューター II
1,679件の閲覧回数

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.

jimdempseyatthecove
名誉コントリビューター III
1,679件の閲覧回数

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

Steven_L_Intel1
従業員
1,679件の閲覧回数

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

JohnNichols
高評価コントリビューター III
1,679件の閲覧回数

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

返信