Как передать объект C ++ в библиотеку классов C #

Я работаю над проектом. В этом C ++ код ссылается на библиотеку классов, которая написана на C #. Я хочу передать объект классов C ++ в библиотеку классов C #.
Так это возможно, если да, пожалуйста, дайте мне знать, как ?? в противном случае мне придется передать около 100 аргументов в C # Class Library.

С Уважением,
Вивек

0

Решение

Вы должны использовать маршлинг.

Маршалинг — это процесс создания моста между управляемым кодом и неуправляемым кодом; именно Гомер передает сообщения из управляемой в неуправляемую среду и обратно. Это одна из основных услуг, предлагаемых CLR (Common Language Runtime.)

Пространство имен System.Runtime.InteropServices.Marshal

Прочитайте здесь хороший блог о marshling

1

Другие решения

Если у вас есть эта опция, вы можете добавить в свой проект файл cpp, который будет скомпилирован с включенным CLR (управляемый C ++). Из управляемого C ++ вы можете вызывать классы C #. Вы можете найти и пример здесь:

Управляемый C ++ для формирования моста между c # и C ++

Другой вариант — создать управляемую DLL C ++ в качестве моста между C ++ и .NET, если вы не хотите включать CLR в вызывающем собственном приложении. Я использовал этот трюк, и он работал нормально, но имейте в виду, что после загрузки библиотеки dll-моста CLR загружается в память, и ваш процесс «заражается» CLR. Вы все равно будете иметь такой эффект.

0

По вопросам рекламы [email protected]