-
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
-
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
-
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?
-
-
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