Вы смешиваете это. Существует три различных способа взаимодействия с собственным кодом из управляемой программы, но вы не можете использовать их все одновременно:
- pinvoke через атрибут [DllImport]. Подходит для собственных API в стиле C
- взаимодействие через COM. Очень хорошо поддерживается CLR, если это подмножество автоматизации и у вас есть библиотека типов. Просто работает из коробки, никакой работы не требуется. Добавление COM в существующий собственный код, который не поддерживает COM, не будет продуктивным, если вы уже не обладаете хорошими навыками программирования COM (знайте ATL)
- классы-оболочки, созданные на языке C ++ / CLI. Когда вышеуказанных вариантов недостаточно. Требуется для взаимодействия с нативными классами C ++.
Изучение достаточного количества C ++ / CLI для выполнения работы требует около 3 недель, для истинного изучения языка требуются многомесячные усилия. Когда вы просто используете его для написания обёрток, нужно сосредоточиться на том, как управляется #pragma, как правильно использовать шляпу и разницу между деструктором и финализатором.
Возможно, вам стоит больше узнать об этом, синтаксис очень напоминает синтаксис C ++ / CX, языковых расширений, добавленных в компилятор MSVC ++, которые поддерживают написание приложений Metro для Windows 8. Знание C ++ / CLI составляет 95%. знания C ++ / CX.
Пример класса оболочки быстрого запуска в C ++ / CLI в этот ответ .