Ich habe eine dll der LZ 4 c Implementierung und ich möchte dieÜbergabe eines char-Array von C# C++ dll
LZ4_compress_default(const char* source,char* dest,int sourceLength,int maxdestLength);
Funktion aus einer C# -Code nennen. Die Funktion komprimiert das Quell-Array in das Ziel-Array. Wie macht man das?
Mein C# -Code:
DllImport(@"CXX.dll", CharSet = CharSet.Ansi, SetLastError = true,
CallingConvention = CallingConvention.Cdecl)]
internal static extern int LZ4_compress_default(
[MarshalAs(UnmanagedType.LPArray)] char[] source, out byte[] dest,
int sourceSize, int maxDestSize);
byte[] result= new byte[maxSize];
int x = LZ4_compress_default(array, out result, size, maxSize);
Sollte unsigned char * sein. Welchen Aspekt können Sie nicht tun? –
Problem, das Dest-Array durch Verweis übergeben.Das komprimierte Array wird von der DLL geschrieben. Aber ich bekomme nicht die Änderung in der C# -Seite. –
'[Out] byte [] dest' und offensichtlich müssen Sie' dest' zuweisen, bevor Sie die Funktion –