|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : avril 2008 Messages : 29 ![]() |
Bonjour,
Tout d'abord je vous pris de m'excuser si le sujet n'est pas exactement dans le bon forum. S'agissant de 3 technologies (Javascript + ActiveX + C++), je ne suis pas certains du lieu où il faut poster ce message. Ce que j'aimerai savoir c'est la conversion (typage) entre JavaScript et C++. Je m'explique : j'ai un activeX développé en C++ (VS). J'appelle cet objet ActiveX à partir d'une page html JavaScript. Or j'aimerais par exemple faire l'addition de deux valeurs d'un tableau. Dans JavaScript je définie un "new Array(2)" puis je crée l'objet ActiveX et j'appelle la fonction d'addition. Mais pour l'objet ActiveX, quel type dois-je déclarer pour la variable en entrée de la fonction (qui doit faire l'addition) ? Ce n'est qu'un exemple. En fait le mieux serait d'avoir un document qui traite de ce sujet de conversion entre JavaScript et ActiveX (C++). Je ne sais pas si le travail dans ce domaine a été fait. Je vous remercie par avance pour votre aide. RakZ |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() |
À vue de nez, je vois deux solutions possibles:
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant. "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?" Apparently everyone. -- Raymond Chen. Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : avril 2008 Messages : 29 ![]() |
Merci Médinoc, je vais regarder dans ce sens.
|
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : avril 2008 Messages : 29 ![]() |
L'utilisation de SAFEARRAY n'est pas possible dans la mesure où la fonction dans ActiveX ne peut pas prendre en paramètre ce type de variable.
J'ai pensé à utiliser la type VARIANT... mais le problème est toujours que je ne sais pas comment sont "interprétées" les variables de JavaScript lorsqu'on les passe dans un objet ActiveX. RakZ |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé Sénior
![]() |
Citation:
SAFEARRAY est un type Automation; Toutes les implémentations de COM, dynamiques ou statiques, basées sur IDispatch ou non, sont supposées le supporter, comme BSTR...
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant. "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?" Apparently everyone. -- Raymond Chen. Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen. |
|
|
|
00
|
|
|
#6 | ||||
|
Invité régulier
![]() Inscription : avril 2008 Messages : 29 ![]() |
Oui excuses-moi je me suis peut être mal exprimé.
Soit une méthode d'un objet activeX (en C++) (nommé Classe_Interface) de type : Code :
Cette fonction est appelée dans javascript de la sorte : Code :
Pour appeler la méthode "Test" on fait (en javaScript) : Or ce que j'aimerais savoir, c'est comment (si c'est possible) faire en sorte que "ArgumentQuelconque" puisse être un tableau, une structure,... Je pensais utiliser SAFEARRAY comme type de variable (générique) en entré d'une méthode d'un objet ActiveX mais ce n'est pas possible.... |
||||
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() |
Ah!
En effet, si tu veux que le truc soit complètement générique (l'équivalent de void*, quoi) tu devras sans doute utiliser un VARIANT. Mais si tu veux juste que cette méthode fasse l'addition de deux valeurs dans un tableau d'entiers, tu dois pouvoir accepter un SAFEARRAY(int) en paramètre dans l'IDL (ce qui en C++, donne un SAFEARRAY *).
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant. "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?" Apparently everyone. -- Raymond Chen. Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen. |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : avril 2008 Messages : 29 ![]() |
Oui merci, je crois aussi que VARIANT est ce qu'il faut utiliser.
Mais la difficulté reste la conversion de type entre le code c++ et le code javascript. |
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() |
En fait, je te conseillerais de tester, tout simplement: Afficher un message avec la valeur du type du VARIANT...
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant. "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?" Apparently everyone. -- Raymond Chen. Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com