Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 621 fois - Téléchargée 35 fois
////////////////////////////////////////////////////////////////////////////// // Premier exemple avec un partage d'une chaine de caractère ////////////////////////////////////////////////////////////////////////////// #include <stdio.h> #include <string.h> #include <windows.h> // à ajouter pour l'utilisation int main() { //Creation d'un fichier MAP (nommé "filemap" dans cet exemple) HANDLE hFileMap = CreateFileMapping(INVALID_HANDLE_VALUE,0,PAGE_READWRITE,0,0x4000,"filemap"); // et initialisation d'une variable partagée char* mData = (char*)MapViewOfFile(hFileMap,FILE_MAP_ALL_ACCESS,0,0,0); //initialise la variable au départ strcpy(mData,"NO_DATA"); while (true) { char txt[0xFF]; scanf("%s",&txt); if (strcmp(txt,"PRINT") == 0) // Si je tape PRINT: affiche la variable partagée printf("mData: %s\n",mData); else if(strcmp(txt,"EXIT") == 0) // Si EXIT: quitte la boucle infinie break; else // sinon enregistre ce qu'on a tapé dans la variable partagée strcpy(mData,txt); } // Libère la mémoire et quitte le programme UnmapViewOfFile(mData); CloseHandle(hFileMap); return 0; } ////////////////////////////////////////////////////////////////////////////// // Second exemple avec un partage d'un nombre de type 'int' ////////////////////////////////////////////////////////////////////////////// #include <stdio.h> #include <string.h> #include <windows.h> int main() { HANDLE hFileMap = CreateFileMapping(INVALID_HANDLE_VALUE,0,PAGE_READWRITE,0,0x4000,"filemap"); int* mData = (int*)MapViewOfFile(hFileMap,FILE_MAP_ALL_ACCESS,0,0,0);
14 mai 2011 à 14:48
10 mai 2011 à 16:42
En effet cette technique fonctionne bien entre deux applications C++
Mais y'a t'il moyen de récupérer ce filemap par un script? ou est-ce strictement limité au C et codes bas niveau
7 avril 2010 à 11:21
pour le 2 eme process c pas plutot un OPENFILEMAPPING ?
22 oct. 2007 à 19:52
struct tastruct* mData = (struct tastruct*)MapViewOfFile(hFileMap,FILE_MAP_ALL_ACCESS,0,0,0);
Me parait une bonne solution non? tt simple.
24 juil. 2007 à 09:41
Encore merci et bonne continuation
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.