dll - 是共享库/dll中的全局变量,跨进程共享

标签 dll shared-libraries

我正在开发一个共享库(.so)和 dll。我有一个在多个线程中更新的全局变量。所以我有用于同步的互斥锁。

我不清楚共享库中的全局数据是否跨进程共享。如果是,那么我需要使用信号量进行同步。据我所知,全局变量是数据段的一部分,所以我想了解 dll 如何跨进程管理全局数据。任何信息 w.r.t. dll 格式和段会有所帮助。

谢谢。

最佳答案

默认情况下,不,全局变量不会跨进程共享。

但是,您可以使用数据段 (data_seg) 来跨进程共享全局变量。您可以在标题为“How do I share data in my DLL with an application or with other DLLs?”的文章中找到有关 MSDN 的更多信息

关于dll - 是共享库/dll中的全局变量,跨进程共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1979303/

相关文章:

c - 从多个库动态加载时静态存储持续时间对象的唯一性保证

android - 是否可以像 OpenCV 一样在 Android 中使用 Dlib?

c# - 从项目中删除引用 .dll 后如何找到它

c++ - 如何从 Lua 调用 C++ DLL 中的函数?

android - 如何构建 libjpeg 以供 ndk 使用

c++ - 使用 dlopen 时,我应该链接到我打开的库吗?

未捕获 C++ 异常(Qt 项目)

linux - 如何列出非 native 二进制文件的库依赖项?

Java命令行参数修改PATH

c - 将 DLL 加载到用户定义的地址