以文本方式查看主题 - 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编辑过]
|