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++:
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 double addition(double x){ return x+1; } double finum::h(double x[]){ double a=x[0]; return addition(a); } int main(){ return 0; }
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
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) ;} }
Comment puis je corriger l'erreur?
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
merci
Partager