gpt4 book ai didi

c++ - 确保从 Fortran 应用程序调用 C++ 析构函数

转载 作者:行者123 更新时间:2023-11-30 04:10:39 25 4
gpt4 key购买 nike

我们有一个调用许多 C++ 模块的大型 Fortran 应用程序。我正在尝试使用 C++ 对象的析构函数来释放资源和关闭文件,但是当 Fortran 程序退出时它们似乎没有被调用。

Fortran 程序使用 STOP 命令退出。

我是否需要使用不同的 Fortran 命令退出,或者从 Fortran 调用 C++ exit(0) 命令?

最佳答案

要获得正确的构造/破坏,您只需要入口点位于 C++ 端即可。

至少,我能想到的最简单的方法似乎很可能是这样的:

  1. 在 C++ 中设置 main,并将其作为入口点。
  2. 将您当前的 Fortran 入口点移到一个函数中。
  3. 从主函数调用该函数
  4. 用 C++ 编写一个名为 do_stop() 的小函数,它只会抛出一个异常
  5. 在您的 Fortran 语言中,将 STOP 替换为对 do_stop() 的调用。

您可以不捕获异常,或者在 main 中使用 try/catch,这样可以更优雅地退出(显示您选择的错误消息而不是库编写的内容作者说你的程序有错误)。

关于c++ - 确保从 Fortran 应用程序调用 C++ 析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20570320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com