Hello,
Est-il possible, dans un code C#, d'utiliser une DLL codée en C++ ?
Hello,
Est-il possible, dans un code C#, d'utiliser une DLL codée en C++ ?
Tout à fait, tu peux utiliser pour cela des DllImport
salut
pour utiliser du code C++ dans une application C#, il y a plusieurs approches possibles
Il faut savoir qu'on ne peut pas directement en C# instancier une classe C++. C'est impossible sans faire quoi que ce soit.
Avec l'interop (dllimport), tu peux appeler des méthodes d'une DLL. Après, que la dll soit codée en C++, C, Delphi, autre, peut importe. Il faut juste que cette DLL expose des méthodes... ET donc, tu appelles des méthodes, et pas des objets.
La solution 2 est de faire un wrapper en C++/CLI. Cela te permet d'ouvrir ta DLL C++ au monde C# en faisant une classe qui va faire les conversions nécessaires entre les 2 mondes.
Si tu veux directement utiliser une classe C++ en C#, la seule solution que je vois est de créer un wrapper C++/CLI. C'est relativement simple et rapide mais pas "automatique"... donc, je t'invite à regarder des exemples de code de wrapper que l'on trouve un peu partout sur le net.
En espérant avoir répondu à ta question.
A l'exposé complet de theMonz31, on peut ajouter aussi l'exposition d'un objet COM par la DLL C++.
Partager