IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#]utilisation memoire partagee


Sujet :

C#

  1. #1
    Membre éprouvé Avatar de shadowmoon
    Homme Profil pro
    Expert technique et fonctionnel .Net
    Inscrit en
    Mai 2005
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Expert technique et fonctionnel .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 066
    Par défaut [C#]utilisation memoire partagee
    Je suis sous Windows 2003 sever avec VS 2005 pro

    J'essaye de mettre ne place une memoire partagee en C#, mais quand je tape le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [DllImport("Kernel32.dll",EntryPoint="CreateFileMapping",
         SetLastError=true,CharSet=CharSet.Unicode)]
    internal static extern IntPtr CreateFileMapping(uint hFile, 
     SecurityAttributes lpAttributes, uint flProtect,
      uint dwMaximumSizeHigh, uint dwMaximumSizeLow, string lpName);
    J'ai une erreur au niveau du IntPtr : "Class, delegate, enum, interface ou struct attendu" comment regler ca ?

    NB : le code est place juste apres les using

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.ServiceProcess;
    using System.Text;

  2. #2
    Membre éprouvé Avatar de shadowmoon
    Homme Profil pro
    Expert technique et fonctionnel .Net
    Inscrit en
    Mai 2005
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Expert technique et fonctionnel .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 066
    Par défaut
    J'ai pas trouve comment faire, je vais donc me rabattre sur le C++

  3. #3
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Peuxtu poster le code de la classe stp

    Merci

  4. #4
    Membre éprouvé Avatar de shadowmoon
    Homme Profil pro
    Expert technique et fonctionnel .Net
    Inscrit en
    Mai 2005
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Expert technique et fonctionnel .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 066
    Par défaut
    le voila

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.ServiceProcess;
    using System.Text;
     
    namespace CommunicationHousseuse
    {
     
        public partial class Service1 : ServiceBase
        {
            public Service1()
            {
                InitializeComponent();
            }
     
            protected override void OnStart(string[] args)
            {
                // creation de la memoire partagee
     
            }
     
            protected override void OnStop()
            {
                // TODO : ajoutez ici le code pour effectuer les destructions nécessaires à l'arrêt de votre service.
            }
        }
    }
    Comme vous pouvez le voir cela corespond a un service windows, et j'aimerais qu'il puisse creer et ecrire dans une zone de memoire partagee qui sera lu ponctuellement par une IHM. Le service et l'IHM sont 2 programmes independant, le service tournant en continu tandis que l'IHM sera regulierement lancee et refermee.



    PS : dsl pour les accents clavier anglais oblige

  5. #5
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Merci mais je parlais plutôt de la classe qui générait l'erreur. je vais essayer de la compiler chez moi

  6. #6
    Membre éprouvé Avatar de shadowmoon
    Homme Profil pro
    Expert technique et fonctionnel .Net
    Inscrit en
    Mai 2005
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Expert technique et fonctionnel .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 066
    Par défaut
    c'etait dans cette classe, j'avais juste rajoute le [DllImport("Kernel32.dll",EntryPoint ... apres les using

  7. #7
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Ila manquerais pas la définition de SecurityAttributes par hasard ?

  8. #8
    Membre éprouvé Avatar de shadowmoon
    Homme Profil pro
    Expert technique et fonctionnel .Net
    Inscrit en
    Mai 2005
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Expert technique et fonctionnel .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 066
    Par défaut
    non, pas d'erreur de ce cote la, la seule que j'ai vient est celle que j'ai expliquee dans le permier post

  9. #9
    Membre éprouvé Avatar de shadowmoon
    Homme Profil pro
    Expert technique et fonctionnel .Net
    Inscrit en
    Mai 2005
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Expert technique et fonctionnel .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 066
    Par défaut
    probleme en partie resolu, j'arrive a creer une memoire partagee, la remplir mais quand j'apelle OpenfileMapping, cette fonction me renvoie le message d'erreur "5", quelqu'un sait a quoi ca correspond ?

  10. #10
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2002
    Messages : 101
    Par défaut
    Ce message d'erreur 5 tu l'obtiens via getLastError ? Parce que si on en croit le MSDN (http://msdn2.microsoft.com/en-US/library/ms681382.aspx), 5 est un access denied... Ca te semble possible / logique ?

  11. #11
    Membre éprouvé Avatar de shadowmoon
    Homme Profil pro
    Expert technique et fonctionnel .Net
    Inscrit en
    Mai 2005
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Expert technique et fonctionnel .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 066
    Par défaut
    c'est tout a fais ca, merci pour le lien, je vais tout de suite le "marquer"

    La memoire partagee est cree et "ecrite" par un service windows (1er .exe) et lue par une ihm "on demand" (2eme .exe). Par contre, j'ai pas bien comrpis commet marche OpenFileMapping, dans mon cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    IntPtr fileMapping = NTKernel.OpenFileMapping((uint)MemoryMappedFile.FileAccess.ReadOnly, false, "Local\\DonneesPartagees5");
    je dois laisser en "Local" ou mettre en "Global" ?

  12. #12
    Membre éprouvé Avatar de shadowmoon
    Homme Profil pro
    Expert technique et fonctionnel .Net
    Inscrit en
    Mai 2005
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Expert technique et fonctionnel .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 066
    Par défaut
    a priori, la reponse ce trouve dans ce document, je teste et je vous tiens au courant.

Discussions similaires

  1. Mémoire partagée probleme lors de shmat()
    Par breezer911 dans le forum Linux
    Réponses: 3
    Dernier message: 20/05/2008, 18h20
  2. Memoire partagee
    Par degreste dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2006, 09h19
  3. utilisation memoire
    Par reptils dans le forum wxWidgets
    Réponses: 1
    Dernier message: 03/02/2006, 03h27
  4. Mémoire swap et mémoire partagée
    Par Invité dans le forum Administration système
    Réponses: 6
    Dernier message: 16/12/2005, 16h39
  5. segment memoire partagee, thread, ou autre?
    Par Pouic dans le forum POSIX
    Réponses: 9
    Dernier message: 26/10/2004, 18h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo