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

 Delphi Discussion :

Gestion du CallBack d'une DLL


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 23
    Points
    23
    Par défaut Gestion du CallBack d'une DLL
    Bonjour, J'espere ne pas trop abuser en postant aussi souvant, voici le probleme :

    La dll en C# que j'utilise fait appel a des fonctions de callback.
    Je ne sais comment faire pour pouvoir les utiliser en delphi.

    la declaration en c# :
    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
     
    public delegate void MeasureDoneHandler(object sender, MeasureDoneArgs e);
     
    public class MeasureDoneArgs : System.EventArgs
        {
            public double[] Values;
     
            public MeasureDoneArgs(double[] aValues)
            {
                Values = aValues;
            }
        }
     
    public void AssignFunction(MeasureDoneHandler aFunctionDelegate)
            {
                mMeasureDoneHandler += new MeasureDoneHandler(aFunctionDelegate);
            }
    Dans ma bibliotheque delphi je me retrouve avec les headers suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure AssignFunction(const aFunctionDelegate: _MeasureDoneHandler);
     
     procedure add_mMeasureDoneHandler(const value: _MeasureDoneHandler);
        procedure remove_mMeasureDoneHandler(const value: _MeasureDoneHandler);
    Le probleme est que ma fonction 'assign fonction' prend en parametre un Handler et que je n'arrive pas a declarer correctement cet handler en delphi.
    En c# ca donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new TCMM18Lib.MeasureDoneHandler(MeasureHandling)
    Ou MeasureHandling est le nom de la fonction appelle.

    j'ai essaye (entre autres) en delphi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    type
      PMeasureHandling = procedure(Sender : TObject; myArgs : MeasureDoneArgs);
     
    TCMM18Lib1.AssignFunction(PMeasureHandling);
    Mais ca ne marche pas.

    Si vous pouviez m'indiquer la marche a suivre,ou si je me trompe completement...

    Merci d'avance

    PS : en cherchant sur le forum j'ai trouve ce post :
    http://www.developpez.net/forums/sho...allback+delphi
    C'est le meme probleme mais j'ai pas voulu l'exumer

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Je ne sais pas d'où sort ta DLL C#, mais le TObject Delphi n'a rien à voir avec l'objet C#, demande au fournisseur de cette DLL si c'est un objet COM que l'on peut utiliser comme une bibliothèque de type normal ...

    j'ai récemment fait un objet ActiveX Delphi pour qu'il soit compatible avec les assembly .NET (suffit de tout mettre en SafeCall dans la TLB), et j'ai mis un peu de temps pour trouver les bons types et les bonnes formes de déclarations, mais faire l'inverse cela me semble hazardeux ... Delphi pour C#, c'est possible, l'inverse comme tu le souhaites me parait douteux, ...

    enfin, soit tu développe en BSD200x, et recense cette DLL comme une Assembly.NET, soit tu fais du C# ça sera peut-être plus simple ... mais vouloir à tout prix faire du Win32 Delphi et intégré une DLL qui ne semble respecté aucune convention des DLL (on ne passe pas d'objet mais des pointeurs sur des structures, ...)

    dans l'autre sujet, il y a bien une TLB donc tous les types nécessaires (les interfaces, énumérations et autre) sont déclarés, il suffit de les utiliser et de consulter la doc si il y en a une de fourni ... en général, les évènements en COM avec Delphi, c'est une interface objet implémentée du côté DLL, une interface event qui est déclaré dans la DLL mais qui doit être implementé par l'Appelant, et enfin l'instance de l'implementation event doit être passé à une propriété (ou fonction) à l'instance de l'interface objet ... voir ce sujet : "[DLL] Transmettre une callback"
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    La dll que j'utilise c'est moi qui l'ai faite. Elle marche avec C#(Biensur) et Labview, maitenant je dois la faire marcher sous delphi. J'utilise la TLB de cette dll.

    Le header du delegate avec object je l'ai trouve dans un bouquin... Mais si tu dis qu'on peut s'en passer je peux essayer....

    Mon objectif principal c'est de faire marcher cette DLL sous delphi quite a faire des modifications dans celle-ci (Le programme delphi n'a pas d'importance c'est juste du test )

    Le truc c'est que toutes les autres fonctions marchent c'est juste l'implementation du callback qui pose probleme.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    LabView ne serait-il pas fait en C# ? car si cela fonctionne c'est que ce type "object", il le connait ...

    pour le header du delegate, je n'ai fait que dire que object (C#) et TObject (Delphi), ça me semble pas compatible, je n'ai rien dit d'autre ...

    Donc si tu veux que cela fonctionne, respecte les normes d'un objet COM, SafeCall, les types connus genre BSTR (WideString), Variant, Interface (par valeur, par ref *, et en retour **), DATE, ... voir l'aide de Delphi pour les types compatibles Automation ...

    et Quelle Version de Delphi ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    oki je vais creuser l'aide de delphi la dessus

    Je sais pas si Labview est code en C# mais c'est surtout qu'il integre des composants speciaux pour le .NET

    Sinon, j'utilise delphi 7

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    Bon j'ai cherche un moment et mon probleme est en fait de passer le parametre que j'utilise pour intialiser mon handler en C# (i.e le nom de la fonction appelle en callback)

    Je n'arrive pas a mettre en parametre cet element quand j'instancie un handler C# en delphi,

    Vous auriez un idee ?

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Utilise dans tout prototype un type compatible COM ou une Interface, ... c'est pourtant clair ... ton code est purement orienté C#, il n'est absolument pas respecteux des normes COM, ... si tu veux faire de l'inter-opérabilité avec Delphi7, tu dois respecter les conventions COM du Win32, donc pas de "object" comme type mais un truc genre IUnknown ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    Ecuse moi j'ai oublie de preciser que j'ai change ma dll et aue maitenant le prototype est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public delegate void MeasureDoneHandler(MeasureDoneArgs e);
    ET la strucutre MeasureDoneArgs passe tres bien du C# au delphi.

    Ce que je n'arrive pas a faire c'est l'equivalent de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mMeasureDoneHandler += new MeasureDoneHandler(aFunctionDelegate);

  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    MeasureDoneArgs est donc une interface ou une structure ?

    Si interface, normalement Delphi a créé un Wrapper (genre TMeasureDoneArgs hérité de TOleServer dans la TLB.pas),
    si oui, tu peux l'utiliser pour créer tes objets via un simple create ...
    si non, voir la fonction CreateComObject

    si structure, euh, je ne sais pas ... terme galvaudé ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    Je me suis trompe

    MeasureDoneArgs est une classe.... (scusez pour la perte de temps)

    J'arrive a declarer mon handler en delphi, mais ni a l'instancier ni a faire le lien entre le handler et la fonction a appeller.
    En C# le constructeur du handler prend un chose assez indefinissable en argument (genre un pointeur de fonction), j'arrive pas a recreer ca.

    j'ai bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     CoMeasureDoneHandler = class
        class function Create: _MeasureDoneHandler;
        class function CreateRemote(const MachineName: string): _MeasureDoneHandler;
      end;
    il n'y a nulle part ou mettre un pointeur de fonction

    Et quand j'essaye d'utiliser CoMeasureHandler.Create;
    il me fait une EOLeSysError exception : Class not registered

  11. #11
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    A mon avis, il faut que te revois comme l'on doit implémenter un "delegate" mais en objet COM (Voir ICI, c'est la seule bonne méthode COM pour Win32), encore une fois tout ça c'est le bousin .NET, c'est la nouvelle norme MicroSoft qui veut faire oublier l'ancienne ou alors la masquer ...

    Maintenant, lit ce tuto de Laurent Dardenne : "Conversion du langage C# vers Delphi 2005 pour .NET - Classe - Méthode - Fonction - Fonction delegate ", tu vas déjà voir qu'avec Delphi 2005, faire du .NET c'est la plaie, alors avec Delphi 7, tu peux toujours courir ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup,
    pour les indications je (re)lis ca et je vous tient au courant

    Pour delphi 7, j'ai pas trop le choix , c'est ce qu'on m'a impose.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    Bon je reviens toujours au meme probleme :

    Quand je fais ca en C# :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mMeasureDoneHandler += new MeasureDoneHandler(aFunctionDelegate);
    je n'arrive pas a savoir de quel TYPE est aFunctionDelegate.


    Et en delphi quand je fais un callBack, j'utilise bien un pointeur de methode.

    Finalement que j'utilise une interface ou pas, le probleme reste toujours le meme :
    Comment "caster" le pointeur delphi en type C#, non ?
    En plus il n'y a pas d'autre moyen utilisable pour faire un pointeur de fonction en C# que le delegate, si ?

  14. #14
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Passer un pointeur de procédure dans le cadre d'une inter-opérabilité C# et Delphi c'est absolument pas standard, je ne sais pas ce qu'il faut faire en .NET, je pensais que c'était un langage protégée, utiliser des pointeurs de procédure c'est pas très safe ça, ... lol, comment compliquer un truc qui était si simple, ... décidemment, j'ai eu à faire avec un développeur C# .NET, il était incapable de me donner la convention d'appel des fonctions du .NET (c'est vraiment un langage qui aliénise les developpeurs), il a fallu que je comprenne qu'il fallait passer par du SafeCall et non pas du StdCall ...

    tu as déclaré "MeasureDoneHandler aFunctionDelegate"

    donc c'est ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public delegate void MeasureDoneHandler(MeasureDoneArgs e);
    si tu avais lu le tutoriel, tu aurais obtenu cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TEventHandler = Procedure (e : MeasureDoneArgs ) Of Object;
    mais le of Object, hum c'est génant ça, donc faudrait tenter un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TEventHandler = Procedure (e : MeasureDoneArgs ); safecall;
    mais, en lisant le tuto, on voit une delegate c'est pour un objet et que c'est très normé pour le .NET (c'est un truc tout nouveau), c'est peut être même une convention nouvelle qui n'existe pas en Delphi 7, et que même si la syntaxe en Delphi n'a pas changé, selon la compilation Win32 et .Net, si cela se trouve, le résultat compilé n'est pas le même, conséquence, ben ça ne pourra jamais fonctionné ...

    tu ne peux pas caster un truc qui n'a rien à voir, ... passe par une interface event, comme je l'ai expliqué ICI, l'inter-opérabilité Win32 a des normes, faut les respecter ...

    Personne ne peut t'aider ? Aller courage, dis à tes chefs, que tu n'y arrives pas !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par ShaiLeTroll

    si tu avais lu le tutoriel, tu aurais obtenu cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TEventHandler = Procedure (e : MeasureDoneArgs ) Of Object;
    mais le of Object, hum c'est génant ça, donc faudrait tenter un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TEventHandler = Procedure (e : MeasureDoneArgs ); safecall;
    J'ai deja essaye sans resultats. J'ai fait des tests de callback entre prog delphi et la effectivement ca marche.

    Citation Envoyé par ShaiLeTroll
    ... passe par une interface event, comme je l'ai expliqué ICI, l'inter-opérabilité Win32 a des normes, faut les respecter ...
    Ce post, j'ai beau eu le lire dix fois, le probleme c'est que je capte pas tout ! J'ai du mal a voir la solution dans son ensemble. Et du coup comment en appliquer la moitie en C#....

    Citation Envoyé par ShaiLeTroll
    Personne ne peut t'aider ? Aller courage, dis à tes chefs, que tu n'y arrives pas !
    Mon chef est pas la pour l'instant et je n'ai que ca a faire, "bosser" la dessus...en attendant son retour !
    J'ai deja pense a des solutions de remplacement....

  16. #16
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Pour l'aute solution, c'est pourtant simple !

    Tu as deux interfaces
    Côté DLL
    Interface Object - avec Implémentation (IGruickObject)
    Interface Event - non implementé (IGruickEventHandler)

    Côté Exe
    Interface Event - ici tu as un objet qui implémente l'interface IGruickEventHandler

    Ensuite, dans InterfaceObject tu as une propriété EventHandler de type IGruickEventHandler(avec un accesseur SetEventHandler)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    InstanceGruickEvent := TImplemenationExeDeEvent.Create();
    InstanceGruickObject.EventHandler := InstanceGruickEvent;
    C'est expliqué dans Delphi, tu as même l'expert qui propose le support des Events pour un ActiveX, en C# qui est un langage plus récent, il devrait au moins proposé cette fonctionnalité, ... c'est un peu la base des ActiveX ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    Bon finalement j'ai contourne le probleme en utilisant des Events Windows au lieu des COM events...

    Merci pour ton aide Shai

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Callback depuis une DLL écrite en Visual C++
    Par bleuerouge dans le forum Langage
    Réponses: 1
    Dernier message: 07/07/2008, 20h11
  2. gestion des TForm dans une DLL
    Par a_lincoln54 dans le forum C++
    Réponses: 0
    Dernier message: 06/04/2008, 18h15
  3. Gestion des Callbacks sur une scrolling Bar
    Par neptune2024 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 22/11/2007, 09h31
  4. Réponses: 8
    Dernier message: 01/06/2007, 00h13
  5. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20

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