【发布时间】:2010-11-06 10:37:34
【问题描述】:
在以下情况下我需要您的帮助:
我正在将一些数据从硬件读取到 MemoryStream (C#) 中,我需要将内存中的这些数据传递给在非托管 C++ 中实现的 dll(使用指针 ??)。 读取的数据(进入流)非常大(兆字节)。我知道我可以 P/Invoke 这个 dll,但我不确定如何将流数据的指针/引用传递给 C++ API?
我必须承认我很困惑,因为我是 C# 的新手——我是否需要使用 unsafe / fixed 因为数据很大,或者这些与 MemoryStream 对象由 GC 管理无关?一些示例代码/详细描述将非常有帮助。谢谢
非托管 API 的签名:
BOOL doSomething(void * rawData, int dataLength)
【问题讨论】:
-
C++ dll 需要什么数据类型?
-
它需要原始数据 - byte / void*。我可以根据需要更改 dll API。
标签: c# c++ parameter-passing memorystream