我有一个c ++函数,如下所示:
int Compression::DecompressPacket(const void* inData, int inLength, void* outData, int outLength)
{
int headerLength = ComputeDataHeaderLength(inData);
return DecompressDataContent(static_cast<const unsigned char*>(inData) + headerLength, inLength - headerLength, outData, outLength);
}
该函数位于c ++库中的类中。
另一方面,我需要在我的c#应用程序上调用此函数。该函数要求我输入类型的参数:“void *,int,void *,int”。
当我尝试在不安全的函数中创建void *时,
unsafe private void lstbox_packets_SelectedIndexChanged(object sender, EventArgs e)
{
[...]
byte[] value = byteValuePackets[lstbox_packets.SelectedIndices[0]];
void* pValue = &value;
[...]
}
我收到错误:
错误8无法获取地址,获取大小或声明指向托管类型的指针('byte []')
我对c ++和指针不是很熟悉,但我想如何在c#中传递void *类型?