2009-09-22 4 views
1

J'essaie de partager certaines données entre les DLL dans un projet qui a une structure de dépendance extrêmement complexe (plusieurs DLL). Je veux être en mesure d'associer une clé avec certaines données dans une partie de l'application, puis extraire ces données en fournissant la clé appropriée dans une autre partie de l'application. D'une certaine façon, on peut dire que je cherche quelque chose qui ressemble à System.setProperty()/getProperty() de Java. J'étais sûr que les process APIs me donneraient un accès à un tampon à l'échelle du processus, mais je n'avais pas de chance. Des idées?Propriétés globales (à l'échelle du processus) dans Win32

(Je sais que la solution propre est d'introduire une nouvelle DLL et de la lier correctement aux DLL existantes Malheureusement, ce type de solution dépasse le mandat de mon équipe).

Répondre

0

Pour être clair, il est un exe ​​avec plusieurs DLL dans un processus que mais plusieurs modules. Vous n'êtes donc pas à la recherche de communications inter-processus.

En réponse, je vois deux stratégies:

  1. utiliser des atomes Windows API qui sont un peu limités (données de chaîne essentiellement uniquement) qui peuvent travailler à l'intérieur ou entre les processus. Si vous écrivez une DLL qui contient votre fonctionnalité SetProperty/getproperty spéculative, vous n'avez pas à recompiler toutes les autres DLL (ce qui est probablement au-delà de la spécification de votre équipe) - vous avez seulement besoin de recompiler les DLL qui utilisent actuellement vos nouvelles fonctionnalités (set/getproperty) (qui est probablement dans la puissance de vos équipes). Donc, cela semble une solution directe et puissante.

1

Vous n'avez pas besoin d'API fantaisie pour cela. Windows a une API beaucoup plus ancienne pour ce genre de choses. Ces choses sont connues comme "atomes". Vous utiliseriez des fonctions comme AddAtom et FindAtom. Par défaut, les atomes sont à l'échelle du processus.

+0

Voici un lien vers un article qui a une classe wrapper pour l'utilisation d'atomes. http://www.codeproject.com/KB/winsdk/win32Atom_Wrapper.aspx – zooropa

Questions connexes