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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Dos
    Dos est déconnecté
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 137
    Par défaut System.Runtime.InteropServices.MarshalDirectiveException*: 'Impossible de marshaler 'parameter #2'*: Impossibl
    Bonjour,
    J'ai une erreur assez peu courante :
    "System.Runtime.InteropServices.MarshalDirectiveException*: 'Impossible de marshaler 'parameter #2'*: Impossible de marshaler les types génériques.'
    Et je n'arrive pas a m'en sortir.
    Auriez vous une piste a me donner ?
    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    [DllImport(@"toto.dll")]
        public static extern int toto_send_bytes_register(UIntPtr hdl,  Func<uint, uint, UInt16, uint, int> cb, IntPtr user_data);
     
        internal int MyToto_diag_send_bytes_register(UIntPtr hdl, Func<uint, uint, ushort, uint, int> cb, IntPtr user_data)
        {
            return toto_send_bytes_register(hdl, cb, user_data);  --------> Ca plante ici à l'execussion ...System.Runtime.InteropServices.MarshalDirectiveException*: 'Impossible de marshaler 'parameter #2'*: Impossible de marshaler les types génériques.'
     
        }
    }

    J'ai rajouté des [MarshalAs(UnmanagedType.FunctionPtr)] sur le deuxieme parametre... pas mieux...
    Merci pour votre aide...

  2. #2
    Dos
    Dos est déconnecté
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 137
    Par défaut
    Citation Envoyé par Dos Voir le message
    Bonjour,
    J'ai une erreur assez peu courante :
    "System.Runtime.InteropServices.MarshalDirectiveException*: 'Impossible de marshaler 'parameter #2'*: Impossible de marshaler les types génériques.'
    Et je n'arrive pas a m'en sortir.
    Auriez vous une piste a me donner ?
    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    [DllImport(@"toto.dll")]
        public static extern int toto_send_bytes_register(UIntPtr hdl,  Func<uint, uint, UInt16, uint, int> cb, IntPtr user_data);
     
        internal int MyToto_diag_send_bytes_register(UIntPtr hdl, Func<uint, uint, ushort, uint, int> cb, IntPtr user_data)
        {
            return toto_send_bytes_register(hdl, cb, user_data);  --------> Ca plante ici à l'execussion ...System.Runtime.InteropServices.MarshalDirectiveException*: 'Impossible de marshaler 'parameter #2'*: Impossible de marshaler les types génériques.'
     
        }
    }

    J'ai rajouté des [MarshalAs(UnmanagedType.FunctionPtr)] sur le deuxième paramètre pas mieux...
    Merci pour votre aide...

    Si je recontextualise, j'essaye de passer le pointeur d'une fonction callback à une dll.
    Mais je m'y prends peut-être mal...

  3. #3
    Dos
    Dos est déconnecté
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 137
    Par défaut
    J'ai tenté ça... https://learn.microsoft.com/fr-fr/do...allback-method
    Je plante toujours mais différemment

  4. #4
    Dos
    Dos est déconnecté
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 137
    Par défaut
    C'était bien la solution il fallait juste préciser : CallingConvention = CallingConvention.Cdecl
    V'la.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/02/2022, 15h14
  2. [Débutant] Impossible importer Imports System.Runtime.InteropServices.Automation
    Par pitite dans le forum VB.NET
    Réponses: 1
    Dernier message: 14/05/2012, 10h11
  3. System.Runtime.InteropServices.COMException Service WCF
    Par Carmel_O dans le forum Windows Communication Foundation
    Réponses: 6
    Dernier message: 18/03/2010, 20h15
  4. message d'erreur sur System.Runtime.InteropServices
    Par l_achraf dans le forum VB.NET
    Réponses: 2
    Dernier message: 15/04/2009, 16h07
  5. Réponses: 1
    Dernier message: 02/07/2008, 11h21

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