2010-06-29 55 views
0

我正在使用g95編譯器編寫fortran並編譯。打開並寫入FORTRAN DLL中的文件

我需要將日誌文件輸出到我正在寫入的DLL中,該DLL正在與主程序鏈接並運行,但生成的結果不正確。我不很瞭解FORTRAN,但我的確得到了下面的代碼在一個EXE產生輸出I編譯:

OPEN(UNIT=3, FILE='LOG.txt', STATUS='NEW') 
    WRITE(3,*) "the gospel of PTP is bestowed upon the file." 
    CLOSE(3) 

這部作品在一個獨立的EXE,當我運行它,它會產生一個文件裏面的字符串。但是,當我嘗試將它包含在我正在處理的DLL中時,它會崩潰一切。當我將它註釋掉時,所有內容都會運行並再次運行,但顯然不會產生所需的輸出。

任何想法?任何FORTRAN或g95人?

+0

你需要有一個日誌文件輸出到DLL?或相反亦然* ? – 2010-06-29 15:51:02

回答

0

猜測這可能幫助,也可能不會,我已經很少使用Fortran的DLL來寫任何東西直接:

  • 到了那裏你期望的DLL寫入文件「log.txt的」?它可能試圖寫入禁止寫入的位置嗎?爲什麼這會讓你的節目崩潰我不是很確定,但這是你要檢查的東西。我希望你從你的一個用戶目錄運行你的代碼的EXE版本。

而且,評論:

  • 一般避免單位單元號Fortran中。大多數o/s將它們用於stdout,stderr等,雖然有通常的賦值(例如stdout通常是5我認爲,而stderr 6),但Fortran標準並未定義這些標準,編譯器編寫者可以自由使用單元編號因爲他們認爲合適。