如何将IntPtr转换为流?

Ada*_*gen 1 .net c++ interop managed-c++

class Foo
{
   static bool Bar(Stream^ stream);
};

class FooWrapper
{
   bool Bar(LPCWSTR szUnicodeString)
   {
       return Foo::Bar(??);
   }
};
Run Code Online (Sandbox Code Playgroud)

MemoryStream将采取一个,byte[]但我想这样做,如果可能的话不复制数据.

McK*_*eG1 7

如果使用UnmanagedMemoryStream()替代(.NET FCL 2.0及更高版本中存在类),则可以避免使用该副本.就像MemoryStream,它是一个子类IO.Stream,并具有所有常见的流操作.

微软对该课程的描述是:

提供从托管代码访问非托管内存块的权限.

这几乎告诉你你需要知道什么.请注意,UnmanagedMemoryStream()它不符合CLS.