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 :

#pragma pack(1) en VB.net


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 15
    Points
    15
    Par défaut #pragma pack(1) en VB.net
    Bonjour,
    Je débute en VB.Net et j'aurais voulus savoir si il existe une commande
    équivalente en VB.net je suis sous Visual Studio 2008

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    VB.NET étant un langage managé, cette instruction n'aurait pas beaucoup de sens... tu n'as pas à te préoccuper de l'organisation de la mémoire dans un langage managé. Pourquoi penses-tu avoir besoin de cette instruction ?

    Si c'est pour la déclaration d'une structure utilisée avec P/Invoke, tu peux utiliser les attributs StructLayout et FieldOffset

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    merci de ta réponse.
    Je travaille sur un projet ou j'ai besoin que ma structure sois identique en octet à celle d'un autre logiciel qui est en pascal.

    Ex: structure Teste en pascal fait 7 octet
    je doit avoir une structure identique qui fait 7 octet et ne pas avoir de padding (octet de rembourage)

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Dans ce cas tu mets un StructLayout séquentiel en précisant Pack = 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Imports System.Runtime.InteropServices
     
    ...
     
    <StructLayout(LayoutKind.Sequential, Pack = 1)>
    Structure MyStruct
        Public X As Int32
        Public Y As Int16
        ...
    End Structure

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    Je viens de tester

    lorsque j’écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <StructLayout(LayoutKind.Sequential, Pack = 1)>
    Visual me sort l'erreur :

    error BC32035: Attribute specifier is not a complete statement. Use a line continuation to apply the attribute to the following statement.
    si je rajoute le "_" à la fin de la ligne il ne connait pas l'attribut Pack.
    Est il possible que cela mon environnement ? (je déploie mon projet sous WINCE)

    [EDIT] je travail en FrameWork 3.5

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    mmm... apparemment l'attribut Pack est pas supporté dans le compact framework. Dans ce cas je sais pas trop comment tu peux gérer ça sans recourir à des grosses bidouilles

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    j'ai trouvé cela :
    http://msdn.microsoft.com/en-us/libr...(v=VS.90).aspx

    mais sa me dit :

    error BC30456: 'Pack' is not a member of 'System.Runtime.InteropServices.StructLayoutAttribute'.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par neoangelo5 Voir le message
    j'ai trouvé cela :
    http://msdn.microsoft.com/en-us/libr...(v=VS.90).aspx

    mais sa me dit :

    error BC30456: 'Pack' is not a member of 'System.Runtime.InteropServices.StructLayoutAttribute'.
    Bah oui, c'est ce que je disais dans mon message précédent : ce champ n'existe pas dans le compact framework.
    Citation Envoyé par MSDN
    .NET Framework
    Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
    Si c'était supporté dans le CF ils le diraient explicitement

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 15
    Points
    15
    Par défaut
    En tous cas merci de votre aide.
    je vais passer par un fichier .ini pour reuperai les informations que j'ai besoin.
    Je travail sur différente plateform (PASCAL,C/C++,VB) c'est un peu la galère

Discussions similaires

  1. Réponses: 9
    Dernier message: 24/06/2014, 15h39
  2. pack d'îcones pour applications VB.NET
    Par vallica dans le forum Windows Forms
    Réponses: 7
    Dernier message: 02/05/2012, 18h58
  3. que signifie la directive #pragma pack(1)
    Par xweb-10 dans le forum C++
    Réponses: 6
    Dernier message: 07/11/2010, 22h28
  4. [Compilation] qmake et #pragma pack(1)
    Par Invité dans le forum Outils
    Réponses: 4
    Dernier message: 23/10/2008, 15h15
  5. directive #pragma pack()
    Par philippe V dans le forum C++
    Réponses: 3
    Dernier message: 06/06/2005, 18h27

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