Vous pouvez appeler des bibliothèques C/C++ natives à partir de n'importe quel langage .NET en utilisant pinvoke. Voici un rapide tutoriel de MSDN . Vous pouvez également créer une dll COM en C++ à laquelle vous pouvez faire référence directement à partir de C# à l'aide de COM Interop. À moins que vous n'ayez besoin des avantages de COM, pinvoke est une voie beaucoup plus facile à suivre.
Et bien sûr, comme Konrad l'a indiqué, vous enveloppez la dll C++ à l'aide d'une solution C++ gérée.
A titre d'exemple, consultez http://www.pinvoke.net/ pour obtenir des exemples sur la manière d'appeler des interfaces win32 à partir de C#.
Extrait du lien MSDN ci-dessus (modifié selon le commentaire ci-dessous) :
using System;
using System.Runtime.InteropServices;
class PlatformInvokeTest
{
[DllImport("msvcrt.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int puts(
[MarshalAs(UnmanagedType.LPStr)]
string m);
[DllImport("msvcrt.dll", CallingConvention = CallingConvention.Cdecl)]
internal static extern int _flushall();
public static void Main()
{
puts("Hello World!");
_flushall();
}
}