動作環境
Windows 7 Pro (32bit)
Microsoft Visual Studio 2017 Community
Windows Forms Applicationのコードを見ていてMarshal.Copy()
という処理を初めて知った。
IntPtr型の変数からbyte[]型の変数にMarshal.Copy()している。
同じ処理のC++ Builder実装ではこういうことは行っていない。
C#特有の処理のようだ。
以下に関連しそうな情報が見つかった。
Marshalling – what is it and why do we need it?。
- managed : managed by CLR
- unmanaged : C, C++, assemblerなどで書かれたコード
SDKのAPIで得たデータをC#で使えるようにするためにMarshallingしているようだ。
SDKのAPIはC#だけでなく、C++にも対応するように用意されている。