C # вызывает все функции встроенного C ++: какие типы использовать?

Я хочу сделать на C ++ все, что можно использовать в проекте C #.

  • Если я хочу передать строку из C # в функцию в C ++ all, какой параметр мне следует использовать?
  • Я знаю, что строки C # используют Unicode, поэтому я попробовал wchar_t * для функции, но этого не произошло Работа; Я попытался перехватить любые исключения, вызванные вызываемой функцией, но не было сгенерировано никаких исключений.
  • Я также хочу вернуть строку, чтобы я мог ее проверить.

Функция C ++ следующая:

DECLDIR wchar_t * setText(wchar_t * allText) {
  return allText;
}

Код C # - это следующее:

[DllImport("firstDLL.Dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]     
public static extern string setText(string allText);

var allText= new string('c',4);
try {
  var str1 = setText(allText);
}
catch (Exception ex) {
  var str2 = ex.Message;
}

Какой тип я должен использовать для типа возвращаемого значения функции C ++, чтобы я мог вызывать его из C # с типом возврата string [] ? тот же Q, но для параметра функции быть строкой [] в C #?

6
задан kiamlaluno 20 March 2011 в 13:31
поделиться