我仍在努力从 ac 静态库中调用一些函数。我在这个toms 包装器之后用 Visual Studio 围绕静态库编写了一个包装器,现在可以访问 c# 端的函数,但是在处理它们时我遇到了一些错误。
所以这里是函数看起来原来的样子:
ZEXTERN Int32 ZEXPORT compressZIP OF((unsigned char *dest, Uint32 destLen,
unsigned char *source, Uint32 sourceLen,
Uint32 *_crc32));
这导致在 c# 方面
public int compressZIP(byte* dest, uint destLen, byte* source, uint sourceLen,
uint* _crc32);
所以,现在我被指针问题困住了,我尝试了类似的东西
byte[] data = new byte[size]
(fixed ptr = data)
并将ptrs传递给函数。但我总是最终会出现一些内存违规或其他内存异常。
当我调用看起来有点相同的 uncompressZIP 时,我得到 2 个正确的未压缩字符,但只有栅栏的东西。
有人可以帮我填写函数的正确参数吗?