我有LZ4 C實現的一個dll,我想打電話從C#代碼傳遞一個字符數組從C#到C++ DLL
LZ4_compress_default(const char* source,char* dest,int sourceLength,int maxdestLength);
功能。該函數將源數組壓縮到dest數組中。這個怎麼做?
我的C#代碼:
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);
應該是無符號字符*。這方面的哪一方面你不能做。 –
有問題通過引用傳遞dest數組。壓縮數組是由dll.But寫的,但我沒有得到在c#端的變化。 –
'[Out] byte [] dest',顯然你需要在調用函數 –