Bonjour
je cherche a faire une DLL dans VBA qui utilise du C++.
J'ai d'abord essayé avec un code très simple, mais qui me pose pb
Voici ce que je veux faire:
SOus l'environnement VBA Excel, je désire appeller une fonction en C++ , ayant pour argument un tableau qui ajoute 1 au tout premier element du tableau, et qui renvoie la valeur du premier element du tableau, augmentée de 1.


Voici le code en C++:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
double addition(double x){
return x+1;
}
double finum::h(double x[]){
	double a=x[0];
      return addition(a);
}
int main(){
 return 0;
}
Voici l'entete .hpp qui cree la DLL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
namespace finum 
{
	double h(double[]); 
 
}
 
int main();
#define int_dll  __declspec(dllexport) int __stdcall
#define int_dll  __declspec(dllexport) int __stdcall
#define void_dll  __declspec(dllexport) void  __stdcall
#define double_dll __declspec(dllexport) double __stdcall
#define long_dll __declspec(dllexport) long __stdcall
 
extern "C" {
double_dll h(double x[]){return finum::h(x) ;} 
}
voici en VBA comment j'appelle la dll:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Declare Function h Lib "C:\Documents and Settings\Desktop\crepey\Nouveau dossier\finum\Debug\finum.dll" Alias "_h@4" (ByVal x As Double) As Double
 
Sub dad()
Dim x(1 To 1) As Double
x(1) = 1
 
f = h(x)
End Sub
Comment puis je corriger l'erreur?
merci