Да, вам нужно создать оболочку с C ++ / CLI вокруг вашей управляемой сборки.
Для смешивания нативных и управляемых типов вы можете проверить эту статью для образца.
коды.
Примитивные типы имеют int, float, byte, конвертированные для вас. Но другие типы String должны быть сделаны сами. Например, если у вас есть собственный указатель на char *, то ваш класс C ++ / CLI должен будет преобразовать его в строку, чтобы передать его в вашу управляемую сборку C #.