Bonjour,
Je programme uniquement en java mais pour les besoins d'une application je dois programmer un peu de C++ pour utiliser une dll.
Ne connaissant pas vraiment le c++ et ayant passé des bonnes heures sans trouver la solution je fais appel à votre aide.
Voici ci dessous le code qui me pose problème:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 ########## code C++ ########## /*fonction d'une DLL _TMC_GetAngle1 //typedef short (WINAPI *DLL_Function_TMC_GetAngle1) ( TMC_ANGLE &Angle, TMC_INCLINE_PRG eMode ); DLL_Function_TMC_GetAngle1 _TMC_GetAngle1; //_TMC_GetAngle1 = (DLL_Function_TMC_GetAngle1)GetProcAddress(hDLL,"?TMC_GetAngle@@YAFAAUTMC_ANGLE@@W4TMC_INCLINE_PRG@@@Z"); */ TMC_ANGLE Angles; TMC_INCLINE_PRG eMode = TMC_PLANE_INC; _TMC_GetAngle1(Angles, eMode); TMC_INCLINE Incline = Angles.Incline; double dHz = Angles.dHz; printf("dHz = %f \n",dHz);//Ca marche je récupère la bonne valeur double test1 = Incline.dCrossIncline; printf("dCrossIncline_ID = %f %f \n",&Incline.dCrossIncline, test1); ########## probleme ########## //Ce qui m'affiche à l'écran dHz = 4.596758 dCrossIncline_ID = 0.000974 0.000000 //dHz a la bonne valeur c'est bon //0.000974 est la bonne valeur, mais je ne récupére que 0.000000 ou alors des valeurs du genre 6016989526623063600000000000000000.000000 //J'ai fait plein d'essais avec des . -> const & et * mais je ne parviens pas à récupérer cette valeur 0.000974 (seul printf me l'affiche correctement) ########## ficher .hpp ########## struct TMC_INCLINE { double dCrossIncline; double dLengthIncline; double dAccuracyIncline; }; struct TMC_ANGLE { double dHz; double dV; double dAngleAccuracy; TMC_INCLINE Incline; }; enum TMC_INCLINE_PRG { TMC_MEA_INC = 0, TMC_AUTO_INC = 1, TMC_PLANE_INC = 2 }; RC_TYPE TMC_GetAngle( TMC_ANGLE &Angle, TMC_INCLINE_PRG eMode = TMC_AUTO_INC );
Merci d'avance pour votre aide.
Si vous pouvez tenter aussi une petite explication par curiosité!!
Je suis vraiment à cours d'idées..
Philippe
Partager