代码之家  ›  专栏  ›  技术社区  ›  Itay Maman

Win32中的全局(进程范围)属性

  •  1
  • Itay Maman  · 技术社区  · 15 年前

    我正试图在一个具有极其复杂的依赖结构(许多DLL)的项目中跨DLL共享一些数据。

    我希望能够在应用程序的一部分中将某个密钥与某些数据关联起来,然后通过在应用程序的其他部分提供适当的密钥来提取该数据。在某种程度上,可以说,我在寻找类似Java的StasePrimType()/GETFraseType()的东西。

    我确信流程API会给我一些访问整个流程缓冲区的权限,但我运气不好。有什么想法吗?

    (我知道clean解决方案是引入一个新的dll并将其正确链接到现有的dll。不幸的是,这种解决方案超出了我的团队的职责范围)。

    2 回复  |  直到 13 年前
        1
  •  0
  •   Peter Mortensen Sumit Kumar    15 年前

    这里有清楚的地方 仅包含多个dll的exe 处理多个模块。因此,您不需要寻找进程间通信。

    在回答中,我看到两种策略:

    1. 使用WindowsAPI原子,这些原子是稍微有限的(基本上只有字符串数据),可以在进程内部或进程之间工作。

    2. 如果编写一个包含推测的setproperty/getproperty功能的dll,则不必再次编译所有其他dll(这可能是超出团队规范的内容),只需重新编译当前正在使用新功能的dll(set/getproperty)(这可能是您团队的工作范围)R)。所以这似乎是一个直接而有力的解决方案。

        2
  •  1
  •   MSalters    15 年前

    你不需要高级的API。Windows有一个更老的API,专门用于这种东西。这些东西被称为“原子”。您将使用函数作为 AddAtom FindAtom . 默认情况下,原子是全过程的。