Не уверен, подходит ли один размер всем, но да, это в основном механический процесс.Ваша оболочка класса ref должна объявить закрытый член, который является указателем на ваш родной класс C ++.Создайте экземпляр в конструкторе.Вам понадобится деструктор и финализатор, чтобы снова удалить этот экземпляр.
Затем для каждой функции в собственном классе C ++ вы напишете управляемую версию.Это почти всегда один-к-одному вызов, вы просто вызываете соответствующий нативный метод и позволяете C ++ Interop преобразовывать аргументы.Иногда вам нужно написать немного связующего кода, чтобы преобразовать управляемый аргумент в его нативную версию, особенно если ваш нативный метод использует 8-битные символы char * или структурные аргументы.
Вы найдете этот стандартный шаблонв коде в мой ответ здесь .Я также должен упомянуть SWIG, инструмент, который может автоматизировать его.Не уверен, насколько он хорош, никогда не использовал его сам.