Передать C ++ jintArray в функцию C #

0

У меня есть С# dll, которая имеет функцию

public static Int32[] remDup(Int32[] dArray){
   return dArray.Distinct().toArray();
}

У меня есть функция jni для этого

JNIEXPORT remDup..... ( jintArray dupArray){
    // from java call i get dupArray
    CsharpDLL::CSharpClass::remDup(/*pass an int32 array */)
}

У меня есть функция java, которая вызывает функцию ниже, используя jni

  remDup (Int[] array)

im вызов С# DLL из Java с помощью оболочки C++... я уже потратил половину дня, чтобы узнать, что передать jIntArray в функцию С# dll... но не удастся.. с полным R & D, насколько я могу doo.,

различные методы

т.е. array<System::Int32^)^ array, Marshal techniques но все еще не могут передать массив из C++ (JintArray) в С# DLL.. PLZ help или guide

  • 0
    Это может помочь msdn.microsoft.com/en-us/library/dtbydz1t.aspx
  • 0
    @ Богдан, спасибо, чувак! НО его приведение после ОШИБКИ значения типа "cli::array<int,1>^" не может использоваться для инициализации объекта типа "cli::array<System::Int32^,1>^ "
Показать ещё 3 комментария
Теги:
arrays
jni

1 ответ

1
Лучший ответ

Решение состоит в том, чтобы создать новый cli :: array размера вашего jintArray, а затем использовать параметр for для установки всех элементов в новый массив и передать его функции С#.

  • 0
    http://msdn.microsoft.com/en-us/library/dtbydz1t.aspx полезная ссылка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню