Re: Communication Inter-Application via Zone memoire.

Posté par r.eude le 15/2/2005 9:48:13
En fait, j'ai fait des tests avec le freeware Process Explorer, et j'ai vu que l'utilisation des fonctions ZoneMemoire de WD8 ne produit pas qqchose de compatible avec les MMF (memory mapped files de Windows MSDN MMF article).
Par contre j'ai fait un bout de code qui utilise directement les API Windows, et la, c'est compatible avec les MMF ( ).

Par contre, j'ai evidemment un autre souci.
je definie un type structure et j'utilise l'API MapViewOfFile qui retourne un pointeur vers la zone memoire. J'ai essaye la fonction transfert mais cela ne fonctionne pas.

mon code snippet est :

Citation :

///////////////////
// Declaration Globlale
//////////////////////
TMMFData est une structure
dwFlags est un entier //Type C : DWORD
NextHook est un entier//: HHOOK;
WinHandle est un entier//: HWND;
MsgToSend est un entier //: DWORD;
BlockKeys est un booléen//: boolean;
FIN
MMFHandle est un entier// THandle;
MMFData est un entier // : PMMFData;

/////////////////////////////////
// code click Btn
//////////////////////
hMMF est un entier //: THandle;
pMMF est un entier//: PMMFData;
sMMF est une TMMFData
resultat est un entier= 0

hMMF = OpenMMF(Saisie1);
IF hMMF <> 0 THEN
pMMF = MapMMF(hMMF);
IF pMMF <> Null THEN
Transfert(&sMMF,pMMF,17)
Trace(sMMF:WinHandle,sMMF:MsgToSend,sMMF:BlockKeys)
UnMapMMF(pMMF);
CloseMMF(hMMF);
END
END


Si qqu'un sait comment associer le pointeur renvoye a ma structure WD, je suis preneur.

En outre, il faut aussi utiliser SizeOf de la structure mais je ne sais pas comment faire cela en WD [ la fonction taille marche uniquement pour les chaines..

Toutes les idees et conseils sont bienvenus.

Romain.

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=12&topic_id=1826&post_id=7606