以文本方式查看主题

-  Fortran中文网  (http://fortran.cn/bbs/index.asp)
--  Fortran语言开发经验交流  (http://fortran.cn/bbs/list.asp?boardid=3)
----  将子程序编成DLL再在主程序中调用  (http://fortran.cn/bbs/dispbbs.asp?boardid=3&id=812)

--  作者:pie
--  发布时间:2007/6/2 11:04:46

--  将子程序编成DLL再在主程序中调用
      PROGRAM IMEXPORT

cDEC$ ATTRIBUTES DLLIMPORT:: /DLL1_COMMON/, /DLL2_COMMON/

      COMMON /DLL1_COMMON/ DLL1_DATA

      COMMON /DLL2_COMMON/ DLL2_DATA

      REAL DLL1_DATA, DLL2_DATA

      DLL1_DATA = 1.0

      DLL2_DATA = 1.0

      

      CALL MAIN_SUB

      CALL DLL1_SUB

      CALL DLL2_SUB

      END

      SUBROUTINE MAIN_SUB

cDEC$ ATTRIBUTES DLLIMPORT:: /DLL1_COMMON/, /DLL2_COMMON/

      COMMON /DLL1_COMMON/ DLL1_DATA

      COMMON /DLL2_COMMON/ DLL2_DATA

      REAL DLL1_DATA, DLL2_DATA

      DLL1_DATA = DLL1_DATA + 1

      DLL2_DATA = DLL2_DATA + 1

      WRITE (6,*) \'In MAIN_SUB, values are: \', DLL1_DATA, DLL2_DATA

      END

C This software DLL1.FOR is part of the Compaq Visual Fortran kit.

C

      PROGRAM DLL1

      END

      

      SUBROUTINE DLL1_SUB

cDEC$ ATTRIBUTES DLLEXPORT:: /DLL1_COMMON/, DLL1_SUB

cDEC$ ATTRIBUTES DLLIMPORT:: /DLL2_COMMON/

      COMMON /DLL1_COMMON/ DLL1_DATA

      COMMON /DLL2_COMMON/ DLL2_DATA

      REAL DLL1_DATA, DLL2_DATA

      DLL1_DATA = DLL1_DATA + 1

      DLL2_DATA = DLL2_DATA + 1

      WRITE (6,*) \'In DLL1_SUB, values are: \', DLL1_DATA, DLL2_DATA

      END

          SUBROUTINE DLL2_SUB

cDEC$ ATTRIBUTES DLLEXPORT:: /DLL2_COMMON/, DLL2_SUB

cDEC$ ATTRIBUTES DLLIMPORT:: /DLL1_COMMON/

      COMMON /DLL1_COMMON/ DLL1_DATA

      COMMON /DLL2_COMMON/ DLL2_DATA

      REAL DLL1_DATA, DLL2_DATA

      DLL1_DATA = DLL1_DATA + 1

      DLL2_DATA = DLL2_DATA + 1

      WRITE (6,*) \'In DLL2_SUB, values are: \', DLL1_DATA, DLL2_DATA

      END

[此贴子已经被作者于2007-6-8 10:31:50编辑过]


京ICP备05056801号