0
我需要將c#中的數字數組發送到.dll,並用++編寫它們並將它們返回以供顯示。將int數組從C++ .dll返回到c#
目前我發送的數據,但我似乎無法讓他們回到正確的格式。該程序崩潰或返回隨機的東西。
這是definiton:
[DllImport("kmp.dll",CallingConvention=CallingConvention.Cdecl)]
public static extern IntPtr sort([MarshalAs(UnmanagedType.LPArray)] int[] vhod);
這是我怎麼稱呼它。
sorted = sort(numbers);
C++函數
extern "C" _declspec(dllexport) const int* sort(const int arr[])
{
return arr;
}
如果你正在排序數組,爲什麼你需要返回指針?數組已排序,不是嗎? – PaulMcKenzie
嗯,我把一個指針,因爲我不能找到另一種方式返回數組。我知道它的用途,但我知道的最好。我不能把int []放在函數中,或者我可以嗎? – Shawn
我在說的是你不需要返回任何東西。你正在採集數據,你正在對它進行排序。在返回時,您傳入的相同數組應該已排序數據。如果不是,那麼你需要發佈這個sort()函數。另外,我強烈建議你給DLL函數數組中的元素數量。 sort()函數沒有辦法真正知道它排序的元素數量。 – PaulMcKenzie