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
|
'definition du nouveau type
Public Type Aff
A_tot As Double
A_02 As Double
A_H20 As Double
End Type
'declaration de la fonction contenue dans la DLL comme une Sub car elle ne renvoie rien
Declare Sub Aff_Gaz Lib "DLL_Affaiblissement2" Alias "_A2_Aff_lineique@44" (ByVal freq As Double, ByVal T As Double, ByVal ro As Double, ByVal p As Double, ByRef Aff_tot As Double, ByRef Aff_02 As Double, ByRef Aff_H20 As Double)
'declaration des variables destinées à recevoir les resultats ainsi que la variable "intermédiaire" A_Gaz
Dim Aff_tot As Double, Aff_H20 As Double, Aff_02 As Double, A_Gaz As Aff
'définition de la fonction principale faisant le calcul à partir des paramètres entrés
Public Function Affaiblissement_Gaz(ByVal freq As Double, ByVal T As Double, ByVal ro As Double, ByVal p As Double) As Aff
Call Aff_Gaz(freq, T, ro, p, Aff_tot, Aff_02, Aff_H20)
Affaiblissement_Gaz.A_tot = Aff_tot
Affaiblissement_Gaz.A_02 = Aff_02
Affaiblissement_Gaz.A_H20 = Aff_H20
End Function
'définition de trois sous-fonctions retournant chacune un des trois sous-résultats
Public Function Affaiblissement_total(ByVal freq As Double, ByVal T As Double, ByVal ro As Double, ByVal p As Double) As Double
A_Gaz = Affaiblissement_Gaz(freq, T, ro, p)
Affaiblissement_total = A_Gaz.A_tot
End Function
Public Function Affaiblissement_02(ByVal freq As Double, ByVal T As Double, ByVal ro As Double, ByVal p As Double) As Double
A_Gaz = Affaiblissement_Gaz(freq, T, ro, p)
Affaiblissement_02 = A_Gaz.A_02
End Function
Public Function Affaiblissement_H20(ByVal freq As Double, ByVal T As Double, ByVal ro As Double, ByVal p As Double) As Double
A_Gaz = Affaiblissement_Gaz(freq, T, ro, p)
Affaiblissement_H20 = A_Gaz.A_H20
End Function |
Partager