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

C# Discussion :

Struct C++ => C# char[] constructeur et pointeur


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 49
    Points
    49
    Par défaut Struct C++ => C# char[] constructeur et pointeur
    Voilà je viens exposé mon problème, je vais être le plus clair possible.

    J'ai injecté une dll managé dans du code natif.

    J'ai traduit la structure c++ en C#.

    J'utilise un pointeur que j'initialise ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     unsafe
                {
                    OBJECTSTRUCT* ObjTab = (OBJECTSTRUCT*)((IntPtr)((int)OffsetConf.OBJECT_BASE));
                }
    J'ai une erreur de type :
    Impossible de prendre l'adresse, d'obtenir la taille ou de déclarer un pointeur vers un type managé
    Cette erreur viens des string contenue dans ma structure, car en c++ j'ai du genre char Name[11] que j'ai du traduire par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 11)]
     public string Name;
    Autre problème, je suis obligé d'utilisé un constructeur pour ma structure et donc de mettre le "string Name" en paramètre ce qui reviens toujours a la même erreur, je cherche une alternative mais je n'y parviens pas .

    PS : Si je retire tout les strings de ma structure et de son constructeur le code fonctionne.

    Je vous remercie d'avance, cordialement.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 49
    Points
    49
    Par défaut
    Solution trouvé pour les gens qui en aurons besoin

    Ont n'utilise pas de string mais un pointeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public unsafe fixed byte Name[11]
    Pour récupéré la valeur en string :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Marshal.PtrToStringAnsi((IntPtr)gObj->Name)

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

Discussions similaires

  1. Constructeur introuvable = pointeur null
    Par Koerty dans le forum Langage
    Réponses: 1
    Dernier message: 05/09/2012, 16h43
  2. tableau de struct qui contient un char*
    Par 3aychoucha dans le forum C++
    Réponses: 5
    Dernier message: 19/10/2011, 16h37
  3. Ajout char dans adresse pointeur
    Par guitz dans le forum Débuter
    Réponses: 12
    Dernier message: 18/10/2009, 22h15
  4. constructeur et pointeur
    Par djraphi23 dans le forum C#
    Réponses: 1
    Dernier message: 30/09/2009, 00h31
  5. passer unee struct dans un buffer (char *)
    Par baert dans le forum C++
    Réponses: 2
    Dernier message: 20/02/2006, 21h49

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