Вы можете вызывать нативные библиотеки C / C ++ с любого языка .NET, используя pinvoke.Вот краткое руководство от MSDN .Вы также можете создать COM DLL в C ++, на который вы можете ссылаться непосредственно из C #, используя COM Interop.Если вам не нужны преимущества COM, pinvoke - гораздо более простой путь.
И, конечно, как сказал Конрад, вы оборачиваете C ++ dll, используя управляемое решение C ++.
КакНапример, посмотрите http://www.pinvoke.net/ для примеров того, как вы вызываете API Win32 из C #.
По ссылке MSDN выше (изменено согласно комментарию ниже):
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();
}
}