[C++/ihm VB] Petit problème de conception

Petit problème de conception [C++/ihm VB] - Divers - Programmation

Marsh Posté le 18-07-2006 à 10:29:57    

Bonjour à tous.
 
Voici mon problème de conception (simplifié pour plus de lisibilité)
J'ai du code en VB, qui instancie un contrôle activeX codé en C++ et qui appelle une méthode du contrôle avec comme paramètre une constante servant d'élément discriminant.
Exemple :

Code :
  1. const TYPEA = 1
  2. const TYPEB = 2
  3. monControle.maFonction(TYPEA)


 
Du coup dans le code C++ de l'activeX, il me faut une enum/un tableau/un truc qui suit la même logique.
Exemple :

Code :
  1. void maFonction(int i) {
  2. if (i == maStruct.TYPEA) { blablabla}
  3. }


 
Bon c'est simplifié avec 2 pauvres int, mais voilà je trouve assez laid de devoir maintenir 2 fois la même structure logique, une fois en VB (en rajoutant des const) et une fois en C++ (en rajoutant des éléments à la struct).
 
Comment je pourrais faire pour que cette "logique" ne soit inscrite qu'à un seul endroit ? Je pourrais faire plein de méthodes différentes dans l'activeX mais on va se noyer sous le nombre des méthodes :/


Message édité par Xavier_OM le 18-07-2006 à 10:34:21

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 18-07-2006 à 10:29:57   

Reply

Marsh Posté le 18-07-2006 à 17:33:26    

:(
 
edit : apparement on peut créer des enum dans le fichier IDL, qui seront vues des 2 côtés. Je vais explorer un peu cette voie.


Message édité par Xavier_OM le 19-07-2006 à 10:21:33

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 19-07-2006 à 10:22:27    

Si tu as acces au code du controleur ActiveX, tu peux ajouter un enum contenant l'ensemble des constantes qui t'interessent (en public), celles-ci devraient etre accessible depuis le code VB, non ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed