【问题标题】:What is the behavoir of atexit() in a dll/so loaded at runtime?在运行时加载的 dll/so 中 atexit() 的行为是什么?
【发布时间】:2012-01-01 21:45:19
【问题描述】:

如果我在运行时加载 dll/so 文件(即使用 LoadLibrary()dlopen()),C++ atexit() 函数的行为是什么?如果我在应用程序退出之前卸载库,它会被调用吗?我可以期望在所有平台上都有相同的行为吗? (特别是windows和类unix系统)

【问题讨论】:

    标签: c++ dll shared-libraries


    【解决方案1】:

    在 windows 下:当您调用 FreeLibrary 时,每个 dll 都会执行atexit 函数链。请务必注意,dll 以未指定的顺序卸载,因此不要添加依赖于其他一些 dll 全局变量的 atexit 处理程序。

    这里是更多信息链接:http://msdn.microsoft.com/en-us/library/988ye33t.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多