c#调用c++程序集某个方法,返回MemoryStream,调试发现返回的对象包含正确的数据,但CanRead、CanWrite、CanSeek都为false,用StreamReader读取时触发异常,试图调用CopyTo方法拷贝到新new出的MemoryStream对象也触发异常,感觉被冻结了一样。
为什么啊,求解释。
c++代码如下:
- C/C++ code
System::IO::MemoryStream^ CCInterface::API::UsingMemStream() { System::IO::MemoryStream^ ms = gcnew System::IO::MemoryStream(); System::String^ txt = "MemStream"; System::IO::StreamWriter^ sw = gcnew System::IO::StreamWriter(ms); sw->WriteLine(txt); sw->Close(); return ms; }
c#代码如下:
- C# code
System.IO.MemoryStream ms = CCInterface.API.UsingMemStream();
------解决方案--------------------
sw->close造成的