Bonjour à tous,

Je souhaite transférer dans une structure C++ via une dll, le contenu d'une structure (UDT) VBA.

Mon code VBA est le suivant :

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
18
19
20
21
22
23
24
25
26
27
28
29
30
 
Private Declare Function Cpp_TEST1 Lib "C:\Users\\TEST1.dll" (ByRef iStruct As myStruct) As Double
 
Type myStruct
    n As Long
    data() As Long
    rData As Boolean
End Type
 
 
iStruct.n = 10
iStruct.rData= True
ReDim iStruct.data(1 To 12)
 
 
iStruct.data(1) = 1
iStruct.data(2) = 2
iStruct.data(3) = 3
iStruct.data(4) = 4
iStruct.data(5) = 5
iStruct.data(6) = 6
iStruct.data(7) = 7
iStruct.data(8) = 8
iStruct.data(9) = 9
iStruct.data(10) = 10
iStruct.data(11) = 11
iStruct.data(12) = 12
 
 
Test1 = Cpp_TEST1(iStruct)
Du coté du C++, j' effectue

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
struct myStruct{    
    long n;
    long  *data;
    VARIANT_BOOL rData;
};
 
XLSTATLINK_API double __stdcall Cpp_TEST1(myStruct *iStruct)
{
    return 1;
}
Lorsque j'espionne la donnée iStruct, je récupère les bonnes valeurs pour les donnée n et rData.
Pour le tableau de long, les données obtenues sont aléatoires :

[0] 8388609 long
[1] 4 long
[2] 0 long
[3] 234122136 long
[4] 12 long
[5] 1 long
[6] 634790639 long
[7] -2013222912 long
[8] 352064696 long
[9] 352064792 long
[10] 1771379816 long
[11] 537 long
Mon problème est que je n'arrive pas récupérer le tableau contenu dans la structure VB à partir de la DLL C++ !!

Merci d'avance pour votre aide ;-)