2010-06-29 25 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标准并未定义这些标准,编译器编写者可以自由使用单元编号因为他们认为合适。