我们有一个大型Fortran应用程序,它调用许多C ++模块。我正在尝试使用C ++对象的析构函数来释放资源和关闭文件,但是当Fortran程序退出时它们似乎没有被调用。
Fortran程序使用STOP
命令退出。
我是否需要使用不同的Fortran命令退出,或者从Fortran调用C ++ exit(0)
命令?
答案 0 :(得分:2)
要获得正确的构造/破坏,您只需要在C ++端使用入口点。
至少随便,我能想到的最简单的方法似乎完全有效:
do_stop()
的小函数,只抛出异常你可以保留未被捕获的异常,或者在main中有一个try/catch
,这可以提供更优雅的退出(显示您选择的错误消息,而不是库作者写的说您的程序有的内容)错误)。