C++那边使用zlib1.2.3 compress函数压缩的 byte[]加入到SQL中
C#从SQL中读取出byte[] 然后解压缩 数据从SQL中读取没错使用过ICSharpCode.DLL 中的 ZipInputStream 解压失败
后想到调用C的DLL
[DllImport("zlib.dll"), CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern int uncompress(
[In, Out, MarshalAs(UnmanagedType.LPArray)]
ref byte[] cpbyte,
ref ulong cplen,
[MarshalAs(UnmanagedType.LPArray)]
byte[] oldbyte,
ulong olen);可是一到 uncompress 函数 就整个程序自动退出了`````求救啊!~~~~~~ 救命啊~~~~~~~~~~
C#从SQL中读取出byte[] 然后解压缩 数据从SQL中读取没错使用过ICSharpCode.DLL 中的 ZipInputStream 解压失败
后想到调用C的DLL
[DllImport("zlib.dll"), CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern int uncompress(
[In, Out, MarshalAs(UnmanagedType.LPArray)]
ref byte[] cpbyte,
ref ulong cplen,
[MarshalAs(UnmanagedType.LPArray)]
byte[] oldbyte,
ulong olen);可是一到 uncompress 函数 就整个程序自动退出了`````求救啊!~~~~~~ 救命啊~~~~~~~~~~
ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen,
const Bytef *source, uLong sourceLen));
我就怀疑是在包装的时候可能错误了``
可是``` 就是没找到包装的类型转换说明````
每次调用到这个函数 整个程序就自动退出 为什么?
我这边是用C# 读取出来 然后解压啊````
现在就是数据读出来了 我这边解不了``` dll 用的一个```
结果发现`` C++中 byte* 到C#中 不是byte[] 而是ref byte ````````````````````````
真X他大爷!! MSDN上 数据类型里都没说过 靠