我在 c# 中分配了一个大的 char[] 缓冲区,并希望将指向此数据的指针传递给 DLL 中未管理的 c 函数。
现在我认为要使其正常工作,必须修复 char 缓冲区,以便 GC 在函数工作时无法将其移动。
如果是这样,我会声明缓冲区 FIXED 并在 UNSAFE 块中调用 DLL 吗?
fixed ( int* p = &bigbuffer )
{
processbigbuffer(bigbuffer);
}
我已经搜索过,但没有多少参考文献突出了内存属于 c# 的问题以及这将如何在 DLL 中工作。
谢谢