2011-06-29 18 views
1

C++マネージドプロジェクトの.Net Graphic機能を使用したいと思います。 inememory C++のバイト配列からWindows.Drawing.Image(MemoryStreamに基づいて)を作成したいと思います。バイト配列をマネージC++からc#にマーシャリングするには

どのように私は、コードの仕事のこの部分を行うことができます。

System::IO::Stream^ ms = gcnew System::IO::MemoryStream(); 
BYTE buf[1024 * 8]; // C++ 
int size; // C++ 
... 
ms->Write(&buf, 0, size) 

は、事前にありがとうございます!

答えて

1

あなたはそのようにそれに何かを行うことができます。

int size = 1024; 

BYTE buf[1024]; 

// unmanaged buffer 
System::IntPtr intPtr = System::IntPtr(buf); 

// managed buffer 
array<unsigned char>^ managedBuf = gcnew array<unsigned char>(size); 

{ 
    // write things to buf[] 
} 

// copy unmanaged buffer to managed buffer 
Marshal::Copy(intPtr, managedBuf, 0, size); 

System::IO::Stream^ ms = gcnew System::IO::MemoryStream(); 

ms->Write(managedBuf, 0, size); 
関連する問題