Bonjour,
Je développe un composant ActiveX sous Visual Studio en C++ et je dois l'intégrer à Borland C++ Builder.
Lorsque je teste mon composant sous borland, toutes les méthodes qui utilisent autre chose que des int, des bool ou void ne sont jamais appelée.
je pense que cela vient de la dispatchmap.
un exemple :
la dispatchmap :
header :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 BEGIN_DISPATCH_MAP(CCViewer3DCtrl, COleControl) DISP_FUNCTION_ID(CCViewer3DCtrl, "addIvFile2", 9, addIvFile2, VT_I4, VTS_PUNKNOWN) END_DISPATCH_MAP()
.ccp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public: afx_msg long addIvFile2(char* path);
.idl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 long CCViewer3DCtrl::addIvFile2(char* path) { //code de addivfile SoSeparator* ivSep ; SoInput in; if (in.openFile("C:\\spheres.iv")) { SoSeparator * ivSep = SoDB::readAll(&in); ivSep->ref() ; root->addChild(ivSep); return 124 ; } return 125; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 dispinterface _DCViewer3D { properties: methods: [id(9), helpstring("method addIvFile2")] LONG addIvFile2(CHAR* path); };
quand cette méthode est appelée sous borland, elle ne retourne rien et j'ai le message suivant :
warning : automation argument coercion failed
Pouvez vous m'aider ? :o
Partager