如何更改我的Fortran代码以作为后台进程运行?
我已经在Windows上编写了一个Fortran程序,现在我想让它作为后台进程运行。我的代码是这样的:如何更改我的Fortran代码以作为后台进程运行?,fortran,Fortran,我已经在Windows上编写了一个Fortran程序,现在我想让它作为后台进程运行。我的代码是这样的: PROGRAM test implicit none integer a a = calculator() print *, a !now I print the result on the screen and I can also write it to a file. END PROGRAM 得到结果大约需要10分钟,我将在其他程序中多次调用它 我知道C++中我们可以简单地改变/控制台
PROGRAM test
implicit none
integer a
a = calculator()
print *, a !now I print the result on the screen and I can also write it to a file.
END PROGRAM
得到结果大约需要10分钟,我将在其他程序中多次调用它
我知道C++中我们可以简单地改变/控制台/窗口来隐藏命令窗口,但是在FORTRAN中似乎不起作用。
<命令窗口真的让我感到困扰,有没有一个简单的方法来让黑窗口消失?< /P> < P> >好吧,不,C++中需要多一点。 虽然我可以告诉您如何使Fortran代码在没有窗口的情况下运行,但您希望屏幕输出到哪里 下面是使代码在没有窗口的情况下运行的基础知识。不过,这并不能让它在后台运行。您可能需要更多的代码来实现这一点。如果编译器支持执行命令行,则可以指定WAIT=.FALSE。要异步运行它 首先,您希望将程序构建为Windows应用程序,而不是控制台应用程序。通常,这是通过链接器选项/子系统完成的:windows而不是控制台 现在,让您的Fortran代码看起来像是针对英特尔Fortran的:
integer(DWORD) function WinMain( hInstance, hPrevInstance, lpszCmdLine, nCmdShow )
!DEC$ ATTRIBUTES STDCALL, DECORATE, ALIAS : 'WinMain' :: WinMain
use ifwinty
implicit none
integer(HANDLE) hInstance
integer(HANDLE) hPrevInstance
integer(LPVOID) lpszCmdLine
integer(DWORD) nCmdShow
... Your code here
WinMain = 0
return
end function WinMain
您正在将代码从程序更改为函数。它将在没有任何可见用户界面的情况下运行。我可以通过管道获得结果。更进一步,什么是真实的背景?后台的服务将是一个在您执行其他操作时继续运行的程序,而不是调用程序等待生成的程序完成。