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 :

d�tecter un �v�nement dans une dll c++/cli et l'afficher dans un projet winforms


Sujet :

C++/CLI

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    354
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Tunisie

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 354
    Par d�faut d�tecter un �v�nement dans une dll c++/cli et l'afficher dans un projet winforms
    Bonjour,
    J'ai une suolution qui contient deux projet: un dll c++/cli et un projet winforms.
    dans cette DLL, j'ai utilis� une variable score qui sera chang� dans un algorithme. dans le projet winforms j'ai un champs texte qui va accepter la valeur de score. Je veux que lorsque la valeur de cette variable change, le champs texte change automatiquement et prend la nouvelle valeur

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Fais comme le reste de .Net: Cr�e une property autour de cette variable, et dans le setter, tu signales un event.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

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

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    http://msdn.microsoft.com/en-us/library/58cwt3zh.aspx

    Mais �a sent un probl�me de Design.

    Vous devriez avoir une approche type Document/Vue. Dans cette approche, la vue n'est pas notifi�e � chaque modification mais quand le traitement d'une action qui a modifi�e les donn�es vient de se terminer.

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    354
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Tunisie

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 354
    Par d�faut
    Merci pour vos r�ponses.
    Mais j'ai pas trouv� comment je peux int�grer l'event dans mon projet. EN fait ma solution contient une dll wrapper et un projet winforms.
    La dll contient des classes natives et une classe wrapper dont laquelle je fais appel aux codes natif. transformation est la classe wrapper, normalDistribution est la classe native.
    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
    33
    34
    35
    class normalDistribution
    {
    .....les constrcteurs et destructeurs.........
    computeStepLengthMT (const Eigen::Matrix<double, 6, 1> &x, Eigen::Matrix<double, 6, 1> &step_dir, double step_init, double step_max,
                                                                                      double step_min, double &score, Eigen::Matrix<double, 6, 1> &score_gradient, Eigen::Matrix<double, 6, 6> &hessian,
                                                                                      PointCloudSource &trans_cloud)
    {
    ...........
      while (!interval_converged && step_iterations < max_step_iterations && !(psi_t <= 0 /*Sufficient Decrease*/ && d_phi_t <= -nu * d_phi_0 /*Curvature Condition*/))
      {
        // Use auxilary function if interval I is not closed
        if (open_interval)
        {
          a_t = trialValueSelectionMT (a_l, f_l, g_l,
                                       a_u, f_u, g_u,
                                       a_t, psi_t, d_psi_t);
        }
        else
        {
          a_t = trialValueSelectionMT (a_l, f_l, g_l,
                                       a_u, f_u, g_u,
                                       a_t, phi_t, d_phi_t);
        }
    ...............
        a_t = std::min (a_t, step_max);
        a_t = std::max (a_t, step_min);
    
        x_t = x + step_dir * a_t;
    
          step_iterations++;
      }
    
    
    }
    la classe transformation est la classe wrapper
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public ref class transformation
    {
    void reg(ref %..........)
    {
    computeStepLengthMT(....................);
    }
    }
    ces deux classes cit�es pr�c�demment sont des classes dans la DLL.
    Maintenant pour le projet winforms, lorsque je clique sur un bouton il fait appel � la fonction reg qui se trouve dans la classe transformation
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    transformation.traintement trsf;
     private void button_registration_Click(object sender, EventArgs e)
            {
    ...........
    trsf.reg(..............);
    At_text.text=....;
    }
    Mon probl�me est que je veux affiche le a_t pour chaque it�ration. Donc j'ai besoin d'ajouter un �venement dans le bopucle while et je ne suis pas arriv�e � m'appliquer.
    Merci pour vos aides

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Ah, la variable o� tu veux notifier est dans le traitement de la classe native... l� �a va �tre plus dur en effet.

    Je te conseille de passer un callback (delegate, interface IProgressionTraitement, etc.) � ta fonction de traitement.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

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

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Ou convertir le code natif en code manag�.

  7. #7
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2008
    Messages
    354
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Tunisie

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 354
    Par d�faut
    Citation Envoy� par bacelar Voir le message
    Ou convertir le code natif en code manag�.
    j'i pas convertit le code natif en manag�. Juste j'ai fait appel du code natif dans la casse wrapper

Discussions similaires

  1. Appel d'une methode de classe par message inop�rant dans une dll
    Par Jacques Deyrieux dans le forum API, COM et SDKs
    R�ponses: 3
    Dernier message: 10/08/2010, 08h10
  2. R�ponses: 3
    Dernier message: 04/07/2008, 12h00
  3. R�ponses: 3
    Dernier message: 30/04/2007, 12h22
  4. R�ponses: 1
    Dernier message: 15/04/2007, 20h09
  5. R�ponses: 7
    Dernier message: 25/11/2005, 17h11

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