Передача объектов между библиотекой C # и C ++ (CLR)

Как передать объекты из библиотеки C # в C ++.

Я могу вызвать функцию, которая возвращает void или же int без проблем.

Теперь рассмотрим следующую функцию в C #,

List<CSharpClass> CSharpFunction(string Input)

где мой класс C # содержит,

public class CSharpClass
{
string mystring = string.Empty;
byte[] bytearray = null;

public byte[] bytearray
{
get { return bytearray ; }
set { bytearray = value; }
}

public string mystring
{
get { return mystring ; }
set { mystring = value; }
}
}

Теперь я хочу использовать этот список в моем C ++. Итак, я создал,

  typedef std::vector<class CSharpClass>  MyDetailList;

Это правильный путь? Если не то, что мне нужно использовать в C ++?

0

Решение

Если вы хотите вызвать C # dll из кода C ++, вы можете следовать Эта статья.
Короче говоря, вам придется:
— Напишите управляемую DLL, содержащую ваш CSharpClass
— Зарегистрируйте управляемую DLL для использования с COM или с Native C ++
— Вызов управляемой DLL из собственного кода C ++

Это ТАК вопрос также актуален и содержит альтернативные решения, если вы хотите избежать использования COM


Первоначальный ошибочный ответ:

Ты можешь проверить Эта статья для довольно хорошего урока.
Короче говоря, вам придется:
— Скомпилируйте dll из вашего кода C ++
— маршалл («переводить») ваш класс между C # и C ++
— загрузить DLL из C #, используя объявление DllImport
— вызвать импортированный метод

-1

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

Других решений пока нет …

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