Bonjour,
Je viens de développer une Dll avec Visual Basic 6.0, cette Dll est de type ActiveX, elle fonctionne dans un environnement VB.
Mon client voudrais appeler cette Dll via un produit C++, après quelque recherche, j'ai trouvé comment implémenter ma dll dans le code.
Ce bout de code fonctionne, j'ai accès à l'ensemble des mes méthodes, le hic se trouve sur les paramètres.HRESULT hresult;
_vtcf2Ptr foo;
CoInitialize(NULL); //initialize COM library
hresult = foo.CreateInstance("vtcf.vtcf2");
if(SUCCEEDED(hresult))
foo->test();
CoUninitialize(); //Unintialize the COM library
Mes chaines string sont transformées en BSTR* et int en short*.
Une méthodes qui n'a aucun paramètre fonctionne très bien.
Par contre si j'appel ma méthode VB :
Public Sub test(toto As Integer)
de cette facon (en castant en short) :
foo->test((short*)999);
L'application c++ plante, et je ne récupère pas de message d'erreur.
J'ai entendu parler d'interface COM et de différentes choses, mais je suis débutant sur le sujet.
Est il possible d'avoir les mêmes type de paramètre en c++, pourquoi cela ne fonctionne pas en castant la valeur ?
Le fichier lib généré par Vb peut-il m'être utile ?
Je viens ici, car je suis sur ce problème depuis 3 jours et je ne sais pas comment faire à part tout recoder en c++ mais c'est très lourd.
Partager