passer une string Excel VBA vers C++
bonjour.
j'écris des petites fonctions en C++ que je wrappe dans des DLLs pour les utiliser avec excel.
avec des variables C++ (int, double, long, ...) et Excel (Double, Integer, .. ) [avec des 'chiffres', quoi!], je code sans problème.
en revanche, je ne parviens pas à utiliser une String de VBA vers C++ , je choisis de la passer ByVal.
le livre de steve dalton donne la réponse à ma question, mais :oops: je ne sais pas quoi faire avec les explications du bonhomme !
Citation:
Quand elle est passée BYVal vers C++, la String de VBA arrive comme une BSTR ... vous pouvez déclarer votre argument comme un char* , ce qui a pour effet de caster le pointeur directement vers l'espace-mémoire alloué à la BSTR
un petit code d'illustration, en-dessous. si quelqu'un a la gentillesse de corriger. je ne sais que faire des BSTR ? char* ? reférencement et dé-férencement ??
code C++
Code:
1 2 3 4 5 6 7 8 9 10
|
double __stdcall maFonction(BSTR couleur)
{
double resultat;
if ('rouge' == couleur)
resultat = 3.7999;
else
resultat = 5.455;
return resultat;
} |
Appel de fonction en VBA
Code:
1 2 3
|
Declare Function maFonction Lib "C:\ .... majoliefonction.dll" _
(ByVal couleur As String) As Double |
merci de votre aide.
édouard