IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Déclaration de tableau de longueur fixe dans une structure VB.net


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 31
    Points
    31
    Par défaut Déclaration de tableau de longueur fixe dans une structure VB.net
    Bonjour,

    Je souhaite faire migrer une application écrite en VB.6 vers VB.net.
    J'ai un souci lors de l'utilisation d'une fonction d'une DLL.

    Voici sa description sous VB.6 :

    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
     
    Public Type tProtProperty
      ProtType  As Long                          'Type of Protocol (tProt)
      TimeOut As Long                           'ALL protocols
      Baudrate As Long                          'ANSI, HSP5
      Comport As Long                           'ANSI, HSP5
      Flag As Long                                   'ANSI, HSP5: 01 = Sendslow  / IP: 01 = UDP
      Port As Long                                   'IP:Port number
      Txtlen As Byte                                'IP : length of following text or 0
      txt As String * 100                          'IP : IP-Address or name (maximum length)
    End Type
     
     
     
        Declare Sub getprotproperties Lib "protkeb.DLL" (ByVal ctrl As Any)
     
        Public ProtProperty As tProtProperty
        Call getprotproperties(ProtProperty)   'readout all settings
    Le passage à VB.net réalisé et le suivant :

    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
     
        Public Structure tProtProperty
            Public ProtType As Integer                          'Type of Protocol (tProt)
            Public TimeOut As Integer                           'ALL protocols
            Public Baudrate As tBaudRate                          'ANSI, HSP5
            Public Comport As Integer                           'ANSI, HSP5
            Public Flag As Integer                                   'ANSI, HSP5: 01 = Sendslow  / IP: 01 = UDP
            Public Port As Integer                             'IP:Port number
            Public Txtlen As Byte                                'IP : length of following text or 0
            Public txt() As Byte  '????????
        End Structure
     
        Declare Sub getprotproperties Lib "protkeb.DLL" (ByRef prottype As Integer, ByRef timeout As Integer, ByRef baudrate As tBaudRate, ByRef comport As Integer, ByRef flag As Integer, ByRef port As Integer, ByRef txtlen As Byte, ByRef txt() As Byte)
     
        Public ProtProperty As tProtProperty
     
     
     
        getprotproperties(ProtProperty.ProtType, ProtProperty.TimeOut, ProtProperty.Baudrate, ProtProperty.Comport, ProtProperty.Flag, ProtProperty.Port, ProtProperty.Txtlen, ProtProperty.txt)   'readout all settings

    Le problème
    se situe au niveau du passage du tableau (dernier élément de la structure), je n'ai pas trouvé de moyen de spécifier une taille fixe. J'ai utilisé quelques artéfacts (comme déclarer plusieurs Byte -> byte_1, byte_2...) dans ce cas j'arrive à récupérer mes données. Mais ce n'est pas envisageable si j'ai une centaine d'octets à récupérer. Le but étant de transmettre une chaîne de caractères. Dans l'exemple ci-dessus, seul le premier octet est récupéré.

    Merci pour votre aide...

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    Bonjour,
    Est ce qu'une solution a été trouver ?
    Je rencontre le même problème de déclaration d'un tableau dans une structure

    le message d'erreur est le suivant :
    La référence d'objet n'est pas définie à une instance d'un objet.

    Merci

  3. #3
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public txt(valeurdesiree) As Byte
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 29/03/2014, 09h36
  2. Afficher un tableau (fixe) dans une form
    Par Lnmex dans le forum VB.NET
    Réponses: 3
    Dernier message: 05/07/2010, 08h50
  3. Réponses: 5
    Dernier message: 15/03/2010, 12h22
  4. FieldInfo et "fixed" dans une structure
    Par pcayrol dans le forum C#
    Réponses: 4
    Dernier message: 28/01/2008, 12h01
  5. Réponses: 7
    Dernier message: 21/12/2005, 16h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo