J'ai un problème lorsque je dimensionne un tableau dans une structure en VBA puis que j'envoi la structure à une fonction C++. Ça plante direct et impossible de voir quoique ce soit.
Code C++code VBA
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 typedef struct XData { int Count; SAFEARRAY *X; SAFEARRAY *Y; } XData; typedef struct T { BSTR s; XData X; } T; typedef struct Input { SAFEARRAY *X; } Input; __declspec(dllexport) int __stdcall Cpp_D1(Input *in) { return 0; }Si je ne mets pas le string ça marche.
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 Private Declare PtrSafe Function Cpp_D1 Lib "MyDLL.dll" (i As InputData) As Long Private Type XData Count As Long X() As Double End Type Private Type T s as string X As XData End Type Private Type InputData X() As T End Type Sub test() Dim i As InputData ReDim i.X(5) ReDim i.X(0).X.X(10) Call Cpp_D1(i) End Sub
Si je ne redimensionne pas i.X(0).X.X(10) ça marche.
Je suis bloqué sur ce problème depuis plusieurs jours et je ne peux pas utiliser un autre schéma de déclaration de structure (je pense à la déclaration dans le .idl qui marche bien) car je dois avoir une compatibilité sous OS X.
Partager