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, maisje ne sais pas quoi faire avec les explications du bonhomme !
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 ??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
code C++
Appel de fonction en VBA
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Declare Function maFonction Lib "C:\ .... majoliefonction.dll" _ (ByVal couleur As String) As Double
édouard
Partager