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

  1. #1
    Membre à l'essai
    Marshaling de la valeur de retour d'une fonction
    Bonjour,

    Depuis une appli C++.Net d'une part et C#.Net d'autre part,
    je dois utiliser une DLL écrite en C++ standard.

    Je l'ai fait en C#, en utilisant le marshaling, par exemple

    Code C# :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            [DllImport("madll.dll", EntryPoint = "mafct")]
            [return: MarshalAs(UnmanagedType.I1)]
            public static extern bool mafct(
                [In]ref mastruct msg_buffer1, 
                [In]ref mastruct msg_buffer2,
                [MarshalAs(UnmanagedType.I1)]
                bool ignoreSelfReceiveFlag);


    Cela marche bien.

    Maintenant je cherche l'équivalent pour C++.Net, de la ligne [return: MarshalAs(UnmanagedType.I1)] et impossible de trouver.
    Quelqu'un connaît-il la syntaxe ? ou bien cela n'existe pas / n'est pas utile en C++.Net ???

    Merci !

  2. #2
    Expert éminent sénior
    Apparemment je me suis posé la même question que toi, parce que quand j'ai fait ma recherche, lien du premier résultat apparaissait déjà en violet ^^
    Et ce résultat, c'était ceci: How can I add an attribute to a return value in C++/CLI?
    Citation Envoyé par JaredPar
    Use returnvalue instead of return
    Code C++/CLI :Sélectionner tout -Visualiser dans une fenêtre à part
    [returnvalue: MarshalAs(UnmanagedType::IUknown)]

    The full list of attribute targets is available in section 28.2 of the C++/CLI spec (PDF)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

###raw>template_hook.ano_emploi###