以下摘自於 Devil(璉璉) Devil.bbs@vlsi1.iie.ncku.edu.tw ----------------------------------------------------------------------------- 今天有點煩又不會太煩, 心有點亂又不會太亂, 隨手拿起 Microsoft Fortran 5.1 User Guide 來隨便翻閱, 忽然之間, 看到 5.1版編譯成Windows 居然可以使 用記憶體到 2**32. 對於指數沒甚感覺的我, 拿起計算器一按! 那呢 (日文發音) ! 居然是 4 GB 耶! 1 GB = 1024 MB, 1 MB =1024 KB , 哇~~~~64 KB 的限制? 我 呸! 640 KB 的限制? 我呸! 以前只知到在 Windows 下不受 640 KB 的限制, 也從來都沒去算過這個最大 值等於多少, 可見我今天真的是發神經了! 我深深覺得 Microsoft Fortran 5.1編譯成 Windows的畫面比 Microsoft Fortran PowerStation 1.0 32 bit for DOS/Windows 在 Windows下 Run的畫面好 看多了!! ----------------------------------------------------------------------------- 如果是基本記憶體不足, 您又不想換編譯器時, 則您只有將該程式編譯程 Windows 下能使用的形式了. 所謂編譯成 Windows下是指該程式可以使用 Windows資源的程 式, 而不是僅是在 Windows下開一 MS-DOS 模式, 其在 Windows為 MDI (例如程式 管理員, 其父視窗中仍可具有子視窗, 但子視窗的範圍上限為父視窗) 的型式. 語法 fl filename.for /MW 這是最簡單的語法, 視窗控制也採用預設值, 當然您可再調整. 但您需注意您程式 庫中是否有 LLibFEW.LIB或組譯前的 C語言程式庫 (OLDNAMES.LIB, QWIN.LIB, LIBH.LIB, LLIBFPW.LIB, ..., LLibFEW.LIB 是由這些組成的!!) , 程式在Windows 下之其它特殊功能則不細談了. (如選單的改變, 呼叫線上輔助說明檔, 呼叫動態 聯結程式庫 (DLL), 及 Windows API等) 若您使用的記憶體超過 4 MB , 則有可能會在連結時發生錯誤, 這是 link 內定節 區不足所致. 解決方法如下: 語法 fl filename.for /MW /link /INFO /SE:xxx xxx 為數字, 可取 512 (512=64 k * 512) , 待編譯完成後可看到所須節區為 XXX 在重新編譯一次. 語法 fl filename.for /MW /link /SE:XXX xxx 的上限我在 Microsoft Fortran Knowledge Base 中看到 1024 為 Microsoft Fortran 5.0 的上限, 5.1 版為 16,375. 另外在 Windows 95 理論上應該能跑, 因為 Windows 95 有內含 Win16, 不過我沒 裝 Windows 95 所以不清楚. 另外有版友建議使用 Lahey Fortran 90 , 該軟體為 32 位元之編譯器, 所以可以直接進入保護模式定址超過 1 MB 的記憶體. 不過我 記得有些並不是和微軟相容, 有時程式要略作更動. 要完全相容的情形可考慮微軟 在 5.1之後出的 Fortran PowerStation 1.0 32 bit for DOS/Windows, 要完全相 容於 Windows 95 可考慮 Fortran PowerStation 4.0 , 測試版出來 7個月了, 正 式版聽說已和 VB40 同時推出, 想要知道其優點可至微軟總站看看, 在此不多做介 紹. 另一種形式可將程式編譯成 DLL, 則可在 Windows下由 VB 3.0 或其它應用程式呼 叫使用. 如果您的記憶體並不是開很大, 而是在連結時發生此問題, 我以前有 post 過解決 方法, 現在手指受不了了, 不打了!! ps. 我是微軟的愛好者, 所以都用微軟的工具...