想要这样做,但 GCHandle 不可为空。我需要 GCHandle 来检索与缓冲区关联的 IntPtr,然后释放它,因此它不是仅返回 IntPtr 的选项。
public GCHandle PacketToGCHandle(PacketAdmin packet)
{
byte[] data;
bool result;
if ((data = PacketToByteData(packet)) != null)
{
GCHandle pinnedArray = GCHandle.Alloc(data, GCHandleType.Pinned);
return pinnedArray;
}
else
{
result = false;
report.BindReport(architecture.report);
}
return null;
}