Bonjour,
Alors j'ai :
-un objet COM ZeObjectCOM développé en VS 6 C++,
-un client COM ZeManagedClient développé en C#, qui appelle des méthodes de ZeObjectCOM,
Pour lancer ZeObjectCOM à partir de ZeManagedClient, j'utilise les instructions C# suivantes :
Quand j'exécute le client, il crée un objet COM. Si l'objet COM est déjà en exécution, il n'en crée pas d'autres... jusque là tout va bien !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 const string COMServerID = "BatataObjects.COM.GSIServer"; (...) Type typeofCOMServer = Type.GetTypeFromProgID(clsidCOMserver); COMserverObj = Activator.CreateInstance( typeofCOMServer );
Les problèmes ont commencé lorsque j'ai voulu que l'objet COM, ZeObjectCOM, devienne un service Windows.
Après quelques bidouillage je l'ai rendu un service, il démarre chaque fois que redémarre le PC, mais lorsque je lance mon client ZeManagedClient, le client ne semble pas reconnaitre l'objet COM déjà en route, et lance une deuxième exécution de l'objet COM, alors que je voudrais qu'il utilise l'objet COM déja en cours d'exécution [ce qui était le cas lorsque l'objet COM n'était pas encore un service Windows].
Où pourrait se situer le problème ?
-Est ce qu'il faut utiliser une autre méthode que Activator.CreateInstance ? Par exemple Activator.GetObject(...)?
Si quelqu'un a une idée ou une piste, merci de m'éclairez !
Partager