Я пытаюсь вызвать функцию C из Vb.net, но я получаю исключение аргумента для параметров, которые являются структурой, содержащей другую структуру, я уверен, что исключение приходит из этого параметра, потому что, если я удаляю его, звонок успешен.
Итак, у меня есть структура в C:
typedef struct Point3DTag {double x, y, z ; } Point3D;
typedef struct coordonnees_verinsTag{
Point3D pieds[30];
Point3D tetes[30];
}coordonnees_verins;
И моя функция:
void __stdcall articulation_droite2(double *corps2_to_corps1,
coordonnees_verins *coordonneesVerins,
double* longueurs,
int* validite_verins,
double precision,
int nb_iter_max,
double dist_pieds_centreRotation,
int* code_retour){
}
Я получил "ту же структуру" в моем коде Vb.net:
Public Structure Point3D
Public x As Double
Public y As Double
Public z As Double
End Structure
Public Structure coordonnees_verins_art
Public pieds() As Point3D
Public tetes() As Point3D
End Structure
Я инициализирую свой массив перед вызовом DLL:
Dim VerinsVirtuels As coordonnees_verins_art
ReDim Preserve VerinsVirtuels.pieds(29)
ReDim Preserve VerinsVirtuels.tetes(29)
Call articulation_droite2(cA2cB_temp(0), _
VerinsVirtuels, _
topo_longueurs(0), _
valid(0), _
0.0001, _
nb_iter_max, _
Dist_piedsVA_centreRot, _
code_retour)
Исключение из HRESULT: 0x80070057 (E_INVALIDARG)
Я думаю, что есть проблема при объявлении этой структуры ....
Любая идея?