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

Framework .NET Discussion :

[C++] Appel via paramètres non managés


Sujet :

Framework .NET

  1. #1
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut [C++] Appel via paramètres non managés
    bonjour,

    j'essai de passer des arguments non managés à partir d'une dll (managé à la base).

    j'ai cherché là: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconDefaultMarshalingForArrays.asp
    Mais comme d'habitude, aucune information pour le C++...

    voici ma classe (qui se trouve dans la dll de référence)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public __gc class MaClasse
    {
    public:
        void Appel([MarshalAs(UnmanagedType::LPArray, SizeConst=10)] float[] ar, [MarshalAs(UnmanagedType::LPArray, SizeConst=10)] float [] ab);
    };
    en gros j'aimerai appeller cette fonction de cette manière à partir de mon assembly:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Appel(float[10], float[10]);
    Mais mon compilateur (Visual C++ 2005 Professionel) n'aime pas trop ma méthode plus haut :/

    Erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    error C2146: syntax error : missing ')' before identifier 'ar'
    error C2146: syntax error : missing ';' before identifier 'ar'
    error C2501: 'MaClasse::ar' : missing storage-class or type specifiers
    error C2062: type 'float' unexpected
    error C2146: syntax error : missing ')' before identifier 'ar'
    error C2146: syntax error : missing ';' before identifier 'ar'
    error C2501: 'MaClasse::ar' : missing storage-class or type specifiers
    error C2062: type 'float' unexpected
    error C2146: syntax error : missing ')' before identifier 'ar'
    error C2146: syntax error : missing ';' before identifier 'ar'
    error C2501: 'MaClasse::ar' : missing storage-class or type specifiers
    error C2062: type 'float' unexpected
    error C2146: syntax error : missing ')' before identifier 'ar'
    error C2146: syntax error : missing ';' before identifier 'ar'
    error C2501: 'MaClasse::ar' : missing storage-class or type specifiers
    error C2062: type 'float' unexpected
    Je sas pertinement que c'est une erreur de syntaxe mais je ne vois pas trop quel serait la bonne syntaxe vu qu'il n'y a aucune information à ce sujet en C++ sur l'msdn

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut Re: [C++] Appel via paramètres non managés
    Citation Envoyé par JulienDuSud
    ...
    Mais comme d'habitude, aucune information pour le C++...
    Je te trouve un peu dur là
    il y a au moins http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vcmex/html/vcgrfMarshalingArrays.asp
    ce ne sera peut être pas la réponse complète à ton souci mais c'est un début

  3. #3
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    j'ai trouvé une autre solution merci quand même

  4. #4
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par JulienDuSud
    j'ai trouvé une autre solution merci quand même
    Ca sera bien de la poster pour que tout le monde en profite...
    Personnelement, j'en ai pas besoin, mais ça pourra aider certain...

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par zitoun
    Citation Envoyé par JulienDuSud
    j'ai trouvé une autre solution merci quand même
    Ca sera bien de la poster pour que tout le monde en profite...
    Personnelement, j'en ai pas besoin, mais ça pourra aider certain...
    +1
    Effectivement JulienDuSud pourrais-tu nous livrer la solution pour laquelle tu as opté :

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/03/2013, 12h39
  2. Réponses: 3
    Dernier message: 23/07/2011, 08h55
  3. problème appel dll c++ non managée depuis C#
    Par zwazillon dans le forum C#
    Réponses: 2
    Dernier message: 19/10/2009, 16h10
  4. Appel de code non-managé
    Par white_tentacle dans le forum VB.NET
    Réponses: 2
    Dernier message: 12/05/2009, 16h50
  5. Réponses: 12
    Dernier message: 23/05/2007, 22h40

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