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

API, COM et SDKs Delphi Discussion :

pb de prototypage


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 100
    Par défaut pb de prototypage
    J'ai un tout petit problème pour changer le prototype d'une méthode.
    Dans le cours sur les objets COM et Dcom, il y a marqué ce qui suit:

    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
     
     
    La création d'un serveur DCOM simple
     
    Voici les étapes de la construction de ce programme : 
     
    Créez un nouveau projet. 
    Ajoutez au projet un objet d'automatisation OLE via le référentiel d'objet. 
    Nommez la classe d'automation TestDCOM. 
    Ajoutez la méthode GetName à l'interface ITestDCOM dans l'éditeur de bibliothèque de type. Changez son prototype en function GetName : WideString; 
    Cliquez sur le bouton Refresh de l'éditeur de bibliothèque de type. 
    Dans l'unité de la CoClasse TTestDCOM, programmez la méthode GetName générée par l'éditeur de bibliothèque de type comme ceci : 
    function TTestDCOM.GetName : WideString;
    begin
      result:='Coucou';
    end;
    Or pour changer le prototype de la méthode j'ai été dans l'onglet "texte" et j'ai remplacé l'ancienne ligne de code par celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HRESULT _stdcall GetName( void );
    or sur mon application cliente quand je veux faire appel à cette méthode j'ai une grosse exception (message d'erreur) qui intervient. Le code est comme suit :

    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
     
    La création d'un client DCOM simple
     
    Le programme test client DCOM doit créé un objet COM distant avec la routine CreateRemoteCOMObject, puis appeler l'entrée GetName. Si la connexion ne peut se faire, une exception sera soulevée dès la tentative de création de l'objet COM. L'affichage du nom de la machine est superflue pour un test de connexion ! Connaissant le GUID de l'objet, ainsi que la machine sur laquelle il se trouve, voici le code associé à un bouton permettant d'effectuer le test de connexion : 
     
     
     
    procedure TForm1.Button1Click(Sender: TObject);
     
    const  Class_TestDCOM: TGUID = '{03B614E2-C339-11D1-A55E-00600879F449}';
     
    var  v : variant;
     
    begin
      v:=CreateRemoteCOMObject(edComputerName.Text, Class_TestDCOM) as IDispatch;
      ShowMessage(v.GetName);
    end;
    Le variant ne reconnait pas la fonction getname.

    Je crois donc que je me suis planté pour changer le prototype.

    Si vous savez comment il faut faire ca serait plutot sympa

    Merci encore pour tout.

    Anthony

  2. #2
    Membre émérite
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Par défaut
    Je te déconseille de modifier le texte (IDL) directement. Le wizard n'est pas toujours très stable après ce genre de modif. Il te suffit de modifier le type de la propriété dans l'onglet Attributs ou Paramètres.
    Dans l'exemple que tu cite, tu as modifié la méthode GetName en une procédure qui ne prend aucun argument (et qui ne retourne rien puisque c'est une procédure). Plutot bizarre...

Discussions similaires

  1. prototypage que je ne comprends pas
    Par poulette3000 dans le forum Débuter
    Réponses: 3
    Dernier message: 27/09/2007, 13h44
  2. [Précompilation] Prototypage d'arguments?
    Par gnulix dans le forum C
    Réponses: 6
    Dernier message: 11/04/2007, 12h22
  3. Prototypage de fct
    Par GO dans le forum C++
    Réponses: 3
    Dernier message: 25/09/2006, 11h38
  4. Réponses: 14
    Dernier message: 18/08/2005, 12h02
  5. Utilisation d'une phase prototypage dans un projet info
    Par Kiki31 dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 28/07/2005, 20h44

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