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++/CLI Discussion :

[C#] Convertir pointeur C++ en C#


Sujet :

C++/CLI

  1. #1
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut [C#] Convertir pointeur C++ en C#
    Hello,

    J'importe une méthode d'une dll écrite en C++ par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [DllImport("ma.dll", SetLastError = true)]
    			public static extern long myFonct(ref UInt32 pCnt);
    La spec en C++ de la méthode est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HRESULT myFonct(UINT *pCnt);
    J'ai du mal à savoir quoi mettre comme type pour le paramètre en c# et comment traduire HRESULT.

    Merci pour votre aide par avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    tu as le mot clé "ref" d'apres ce que j'avais lu cela servait pour les pointeurs, par contre il me semble que tu as peut être le mode unsafe à utiliser

  3. #3
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    Salut,

    merci de ta réponse.

    Pour ce qui est d'utilisé ref g essayé mais sans résultat.

    Je vais regarder le mode unsafe

    merci

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    j'aurai tendance à remplacer les pointeurs par un intptr, et à caster après en utilisant le marshalling

  5. #5
    Membre actif Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Points : 272
    Points
    272
    Par défaut
    Moi j'utiliserai aussi ref... Et ref ne nécessite pas de code unsafe non, ce n'est pas une manipulation de pointeurs.

    Si ça ne marche pas alors tu peux faire ça en unsafe :
    public static unsafe extern long myFonct(UInt32* pCnt);
    et ça devrait marcher.

    Si ça ne marche toujours pas, demande toi s'il n'y a pas de bug ailleurs

    j'aurai tendance à remplacer les pointeurs par un intptr, et à caster après en utilisant le marshalling
    Passe aussi même si ref est la plus belle solution. (enfin moi les IntPtr je les garde surtout pour conserver un pointeur côté managed sans y toucher)

  6. #6
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    Nico-pyright(c), aurais tu un exemple concernant le marshalling des paramètres ?

    Merci


  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tiens, regarde cet article http://www.microsoft.com/france/msdn...z-Pinvoke.mspx et plus particulièrement ce qui correspond à Marshal.AllocHGlobal et Marshal.PtrToStructure

  8. #8
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    Merci

    Je vais y jeter un coup d'oeil tout de suite

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/12/2010, 18h19
  2. convertir un pointeur de fct C++ en C
    Par Nik_Meilleur dans le forum C++
    Réponses: 2
    Dernier message: 22/05/2008, 19h28
  3. Comment convertir un pointeur en Double?
    Par Art19 dans le forum Langage
    Réponses: 13
    Dernier message: 20/07/2007, 11h05
  4. convertir un bstr en pointeur de char
    Par dam123 dans le forum C
    Réponses: 2
    Dernier message: 20/02/2007, 20h52
  5. [debutant]Convertir un pointeur byte en String
    Par patmaba dans le forum SL & STL
    Réponses: 3
    Dernier message: 22/07/2005, 13h34

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