Существует два варианта использования C ++ DLL из C #: либо COM-взаимодействие, либо P / Invoke. COM Interop включает создание COM-объекта в вашей C ++ DLL, а затем добавление его в качестве ссылки. Вы можете использовать объект COM как объект C # (по большей части) на данный момент.
P / Invoke позволяет вам вызывать экспортированные функции из C # (например, вызывая стандартные функции Win32 API из C #). Это, вероятно, проще в настройке, поскольку все, что вам нужно сделать, это экспортировать функцию, однако это может привести к рефакторингу вашего кода в C ++ DLL, поскольку это не очень ООП-способ.