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:
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
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 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 HRESULT _stdcall GetName( void );
Le variant ne reconnait pas la fonction getname.
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;
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
Partager