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 :

Intéropérabilité C et C#


Sujet :

C++/CLI

  1. #1
    oxa
    oxa est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 39
    Par défaut Intéropérabilité C et C#
    Bonjour,
    je voulais connaitre les possibilité et les méthodes d'intéropérabilité entre le C et le C#

    Je voudrais créer une appli C# qui me permettrait d'encoder n'importe quel format vidéo en FLV.
    Je sais que FFMPEG est codé en C (ou en C++, je ne suis pas certain)

    Mais j'aimerai que le tout soit piloté en C#. Comment puis-je faire pour utiliser ce qui est fait en C dans mon projet C# ?

    J'utilise VS2005 si cela est important.

    Merci bien

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Par défaut
    Pour appeler une fonction présente dans une DLL, vous devez utiliser DllImport et vous devez toujours faire précéder le type de la méthode du mot clé extern (cela permet de spécifier que la méthode est appelée dans un fichier externe à l'application).
    Vous devez aussi connaître :
    - le nom de la méthode
    - le type qu'elle renvoie
    - les paramètres qu'elle peut accepter
    Ces informations vous sont généralement fournies avec la documentation de la méthode désirée.
    Voici un exemple de DllImport :

    using System.Runtime.InteropServices;
    [ DllImport("user32.dll") ]
    static extern int FlashWindow (int hwnd, int bInvert);

    Cette méthode, extraite du fichier user32.dll, renvoie un entier et prend en paramètre 2 autres entiers.

    utilise la faq

  3. #3
    oxa
    oxa est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 39
    Par défaut
    Désolé, je ne savais pas que toutes les dll win32 étaient codées en C/C++

    Merci en tout cas de ta réponse.

    J'ai aussi entendu parler de P/Invoke pour l'intéropérabilité, est-ce une solution équivalente ou meilleure ou moins bonne?

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Par défaut
    http://www.geocities.com/jeff_louie/...op/atl_com.htm
    http://www.geocities.com/jeff_louie/...op/pinvoke.htm

    You can't directly use C++ classes from C#, you have to:
    - wrap them in a managed class using MC++, or,
    - expose your C++ classes as COM objects.

    Willy.



    "eric" <jj6...@dcs.warwick.ac.uk> wrote in message


    news:dmrvd.1113$5v6.328@newsfe2-gui.ntli.net...

    tout ceci devrait pouvoir t aider

Discussions similaires

  1. Intéropérabilité entre un client java et serveur dot net
    Par miss_2000 dans le forum Services Web
    Réponses: 1
    Dernier message: 01/12/2006, 10h54
  2. --> intéropérabilité c++ c#
    Par peuh dans le forum MFC
    Réponses: 11
    Dernier message: 14/05/2003, 10h23

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