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++/CLI Discussion :

comment utiliser methodInvoker en c++ cli?


Sujet :

C++/CLI

  1. #1
    Membre à l'essai
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Novembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Expert sécurité informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 21
    Points : 22
    Points
    22
    Par défaut comment utiliser methodInvoker en c++ cli?
    Bonjour, j'ai ce code en c# qui est correcte

    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
    private void HandleFarmStateChanged(object sender, ValueChangedEventArgs<CFarm.FarmState> e)
            {
                if (control.InvokeRequired)
                {
                    control.Invoke(new MethodInvoker(delegate
                    {
                        HandleFarmStateChanged(sender, e);
                    }));
                    return;
                }
     
               //FarmStateStatusLabel.Text = e.NewValue.ToString();
                Console.WriteLine(e.NewValue.ToString());
                Console.WriteLine("       ");
            }
    mais je le veux en c++ cli et c'est ce que j'ai essayé

    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
    void GetNotifications::HandleFarmStateChanged(Object ^sender, ValueChangedEventArgs<CFarm::FarmState> ^e)
    {
    	if (control->InvokeRequired)
                {
    				control->Invoke(
        gcnew System::Windows::Forms::MethodInvoker(
            this,
    		&GetNotifications::HandleFarmStateChanged
        )
    );
                    return;
                }
     
    	Console::WriteLine(e->NewValue.ToString());
    	Console::WriteLine("       ");
    }
    et pourtant j'ai toujour cette erreur
    "Error 1 error C3352: 'void GetNotifications::HandleFarmStateChanged(System::Object ^,BaseLibCS::ValueChangedEventArgs<T> ^)' : the specified function does not match the delegate type 'void (void)'"

    Merci d'avance
    Modifier

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    C'est assez simple, void HandleFarmStateChanged(Object^,ValueChangedEventArgs<T>^) n'est pas une void f(void)Il "suffit" de creer une fonction sans arguments, qui fournit les arguments requis.

    Pour les détails, je ne connais ni C# ni C++/CLI

    ce que tu fais ressemble (d'après le message d'erreur) à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void myListener(int, int);
    void registerListener( void *(void) );
    //...
    {
        registerListener(myListener);
    }
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 058
    Points : 12 093
    Points
    12 093

Discussions similaires

  1. Comment utiliser du C++/CLI dans du VB.Net ?
    Par onur dans le forum C++/CLI
    Réponses: 3
    Dernier message: 19/10/2006, 12h42
  2. [C++/CLI] Comment utiliser XmlDocument?
    Par ben_ghost dans le forum C++/CLI
    Réponses: 7
    Dernier message: 06/08/2006, 22h34
  3. Comment utiliser HttpUtility.HtmlDecode() en c++/cli ?
    Par boudreau_benjamin dans le forum C++/CLI
    Réponses: 1
    Dernier message: 20/05/2006, 08h58
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 10h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 16h21

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