2014-04-06 43 views
0

我有具有功能C#DLL通行證C++ jintArray到C#函數

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

我對這個

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

JNI函數我有使用JNI它調用以下功能的Java功能

remDup (Int[] array) 
從Java中使用C++包裝

IM調用C#DLL ...我已經花了半天,找出通過jInt陣列,以C#DLL函數...,但沒有成功。與完成R & d多達我可以鬥..

differet技術

array<System::Int32^)^ array, Marshal techniques但仍無法從C通過陣列++(JintArray)至C#DLL .. plz幫助或指導

+0

這可能有助於http://msdn.microsoft.com/en-us/library/dtbydz1t.aspx – Bogdan

+0

@Bogdan日Thnx傢伙!但它給出以下** ERROR **類型的值'cli :: array ^「'不能用於初始化類型爲」「的實體cli :: array ^」' –

+0

對不起,不熟悉jintArray,但最壞的解決方案是創建一個新的clint :: array jintArray的大小,然後使用for將所有元素設置爲新數組並將其傳遞給c#函數... – Bogdan

回答

1

一個解決方案是創建一個新的cli :: array大小的jintArray,然後使用for將所有元素設置爲新數組並將其傳遞給c#函數。

+0

'http:// msdn.microsoft.com/en-us/library/dtbydz1t.aspx'一個有用的鏈接 –