De C à VB.NET

Résolu
alopia Messages postés 11 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 10 janvier 2010 - 16 sept. 2008 à 11:55
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009 - 17 sept. 2008 à 17:45
Bonjour,
Voilà je dispose d'une structure en C,  fournie en documentation d'une station météo, je voudrais utiliser cette structure en VB.NET, mais je ne m'y retrouve pas dans les différents formats. Alors si quelqu'un peut me guider je le remercie d'avance.
 short, char, char [16],  float, comment traduire en VB sans produire de décalage. Ci-dessous la structure :

struct  WeatherRecordStructEx
{
    short year;
    char month;
    char day;
    short packedTime;
    char dateStr[16];
    char timeStr[16];
    short archivePeriod;

    float outsideTemp;
    float hiOutsideTemp;
    float lowOutsideTemp;
    float insideTemp;

    float barometer;
    short barometerTrend;

    float outsideHum;
    float insideHum;

    float rain;
    float hiRainRate;

    float windSpeed;
    float hiWindSpeed;
    short windDirection;
    char [file:///C:/Program%20Files/VantagePro%20DLL/readme.htm#Wind Direction windDirectionStr[5];]
    short hiWindDirection;
    char [file:///C:/Program%20Files/VantagePro%20DLL/readme.htm#Wind Direction hiWindDirectionStr[5];]

    short numWindSamples;
    short numExpectedSamples;

    short solarRad;
    short hiSolarRad;
    float UV;
    float hiUV;

    float et;

    float extraTemp[3];
    float extraHum[2];
    float soilTemp[4];
    float leafTemp[2];

    float soilMoisture[4];
    float leafWetness[2];

    float heatIndex;
    float THWIndex;
    float THSWIndex;
    float windChill;
    float dewPoint;

    float insideDewPoint;
    float insideHeatIndex;
};
 

4 réponses

alopia Messages postés 11 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 10 janvier 2010
16 sept. 2008 à 12:09
Super, et merci beaucoup !
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 sept. 2008 à 14:43
Salut,

>[../auteur/ALOPIA/1465986.aspx Alopia] : Si tu estimes que ton problème est résolu, penses à appuyer sur réponse acceptée sur le OU les posts qui t'ont aider à avancer.

@+: Ju£i€n
Pensez: Réponse acceptée
3
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
16 sept. 2008 à 12:03
réponse de P / invoke interrop assistant :

<System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, CharSet:=System.Runtime.InteropServices.CharSet.[Ansi])> _






Public








Structure

WeatherRecordStructEx



'''short








Public

year


As





Short








'''char








Public

month


As





Byte








'''char








Public

day


As





Byte








'''short








Public

packedTime


As





Short








'''char[16]


<System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=16)> _








Public

dateStr


As





String








'''char[16]


<System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=16)> _








Public

timeStr


As





String








'''short








Public

archivePeriod


As





Short








'''float








Public

outsideTemp


As





Single








'''float








Public

hiOutsideTemp


As





Single








'''float








Public

lowOutsideTemp


As





Single








'''float








Public

insideTemp


As





Single








'''float








Public

barometer


As





Single








'''short








Public

barometerTrend


As





Short








'''float








Public

outsideHum


As





Single








'''float








Public

insideHum


As





Single








'''float








Public

rain


As





Single








'''float








Public

hiRainRate


As





Single








'''float








Public

windSpeed


As





Single








'''float








Public

hiWindSpeed


As





Single








'''short








Public

windDirection


As





Short








'''char[5]


<System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=5)> _








Public

windDirectionStr


As





String








'''short








Public

hiWindDirection


As





Short








'''char[5]


<System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst:=5)> _








Public

hiWindDirectionStr


As





String








'''short








Public

numWindSamples


As





Short








'''short








Public

numExpectedSamples


As





Short








'''short








Public

solarRad


As





Short








'''short








Public

hiSolarRad


As





Short








'''float








Public

UV


As





Single








'''float








Public

hiUV


As





Single








'''float








Public

et


As





Single








'''float[3]


<System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=3, ArraySubType:=System.Runtime.InteropServices.UnmanagedType.R4)> _








Public

extraTemp()


As





Single








'''float[2]


<System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=2, ArraySubType:=System.Runtime.InteropServices.UnmanagedType.R4)> _








Public

extraHum()


As





Single








'''float[4]


<System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=4, ArraySubType:=System.Runtime.InteropServices.UnmanagedType.R4)> _








Public

soilTemp()


As





Single








'''float[2]


<System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=2, ArraySubType:=System.Runtime.InteropServices.UnmanagedType.R4)> _








Public

leafTemp()


As





Single








'''float[4]


<System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=4, ArraySubType:=System.Runtime.InteropServices.UnmanagedType.R4)> _








Public

soilMoisture()


As





Single








'''float[2]


<System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=2, ArraySubType:=System.Runtime.InteropServices.UnmanagedType.R4)> _








Public

leafWetness()


As





Single








'''float








Public

heatIndex


As





Single








'''float








Public

THWIndex


As





Single








'''float








Public

THSWIndex


As





Single








'''float








Public

windChill


As





Single








'''float








Public

dewPoint


As





Single








'''float








Public

insideDewPoint


As





Single








'''float








Public

insideHeatIndex


As





SingleEnd







Structure











Bonjour chez vous !
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
17 sept. 2008 à 17:45
Bonjour,

As-tu pensé à en faire une classe plutôt qu'une structure? Cela serait dans la logique d'un langage Objet (puisque VB.net en est un) avec tous ces avantages..

thierry la fronde
0
Rejoignez-nous