撰寫者: Devil(璉璉) Devil.bbs@vlsi1.iie.ncku.edu.tw -------------------------------------------------------------------------- 建立 Windows 下的動態連結程式庫 (DLL) ---------------- test.for ------------------------------------------------ real function TestWrite() TestWrite=100. end -------------------------------------------------------------------------- 1.copy FL.def test.def, 改現成的 def檔比較方便 2.修改 test.def, 可把註解列殺掉. ---------------- test.def ------------------------------------------------ LIBRARY TEST.DLL ;^^^^^^^^^^^^^^^^^^^^^^^ ;改成這樣, 檔名需與輸出之 DLL檔名同. ;Name 是給 Windows 軟體用的, Library 是給 DLL檔用的. APPLOADER '__MSLANGLOAD' ;拿掉 STUB 那句 ; STUB 內定是加入 WinStub.exe , 你可以找出來去執行看看, 那檔只有一句 ;話, 所以你可以為你的 Windows 程式加入 DOS模式下的程式碼, 至於要加什 ;麼, 就看個人的想像力... EXETYPE WINDOWS 3.0 ;執行檔的格式, 你可以使用 Windows, Windows 3.0, Windows 3.1 都可正常 ;的在 cwindows 3.1 下執行. 這裡改 os2的話, 就是 os2 的多工程式了!! PROTMODE CODE PRELOAD MOVEABLE DISCARDABLE DATA PRELOAD MOVEABLE HEAPSIZE 1024 STACKSIZE 8096 EXPORTS TestWrite ; ^^^^^^^^^ ; 把所有的對外提供的函數名及副程式名列入 ------------------------------------------------------------------------ ps. 本檔 (TEST.DLL) 經 VB 3.0 以呼叫 API 方式測試無誤. 編譯及連結: Win A:\WINDLL>fl /c /Aw /Gw test.for Microsoft (R) FORTRAN Optimizing Compiler Version 5.10 Copyright (c) Microsoft Corp 1982-1991. All rights reserved. test.for Win A:\WINDLL>link test Microsoft (R) Segmented-Executable Linker Version 5.15 Copyright (C) Microsoft Corp 1984-1991. All rights reserved. Run File [test.exe]: test.dll List File [NUL.MAP]: Libraries [.LIB]: /nod:llibfor7 ldllfew Definitions File [NUL.DEF]: test.def Win A:\WINDLL> 同上, 您若對 Fortran 很感冒, 也可這樣配合 VB 或 VC 用, 甚至也可讓您的 Fortran 來用.