으로 반환합니다. C#에서 .dll로 작성된 숫자 배열을 ++로 정렬하여 표시하고 다시 표시해야합니다.int 배열을 C++ .dll에서 C#
현재 데이터를 보내고 있지만 올바른 형식으로 다시 가져올 수 없습니다. 프로그램이 충돌하거나 임의의 무언가를 반환합니다.
[DllImport("kmp.dll",CallingConvention=CallingConvention.Cdecl)]
public static extern IntPtr sort([MarshalAs(UnmanagedType.LPArray)] int[] vhod);
이 내가 그것을 호출하는 방법입니다
이
은 definiton입니다. 당신은이에 DLL 함수의 프로토 타입을 변경할 수 있습니다extern "C" _declspec(dllexport) const int* sort(const int arr[])
{
return arr;
}
배열을 정렬하는 경우 왜 포인터를 반환해야합니까? 배열이 제자리에 정렬되어 있지 않습니까? – PaulMcKenzie
배열을 반환하는 다른 방법을 찾을 수 없기 때문에 나는 거기에 포인터를 넣었습니다. 그리고 나는 그 uselles를 알고있다. 그러나 나는 최고를 얻었다. 함수에 int []를 넣을 수 없습니까? – Shawn
내가 말하는 것은 당신이 아무것도 반환 할 필요가 없다는 것입니다. 당신은 데이터를 가져 가고 그것을 제 위치에서 정렬하고 있습니다. 돌아 왔을 때, 전달한 동일한 배열에 데이터 정렬이 있어야합니다. 그렇지 않으면이 sort() 함수를 게시해야합니다. 또한 DLL 함수에 배열의 요소 수를 제공하는 것이 좋습니다. sort() 함수가 정렬하는 요소의 수를 실제로 알 수있는 방법은 없습니다. – PaulMcKenzie