Bonjour,
Je rencontre un problème en voulant utiliser des structure an argument de fonction entre une dll C++ et le VBA.
J'utilise visual studio 2010.
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 struct ms { int a; double b; }; __declspec(dllexport) double __stdcall Cpp_Test(ms *i) { return i->a + i->b; }
Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Declare PtrSafe Function Cpp_Test Lib "MyDLL.dll" (i As ms) As Double Type ms a As Long b As Double End Type Sub Test() Dim i As ms i.a = 12 i.b = 3.14 MsgBox Cpp_Test(i) End Sub
Cela ne marche pas car je perd ma valeur de b. J'ai le sentiment qu'il y a un problème d'alignement et je n'arrive pas à le régler.
J'ai essayé d'utiliser le mot clef:sur ma structure mais ça ne change rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part __declspec(align(8))
Auriez-vous une idée du problème et comment le résoudre s'il vous plaît?
Merci!
Partager