P/Invoke において,データをC#側からアンマネージ側へ渡す,またはアンマネージ側から受け取るとき,どのような動作をしているのかについて調べてみました. まず P/Invoke について,MSDN の中で参考になりそうなページを挙げます. クラス、構造体、および共用体のマーシャリング 文字列のマーシャリング 型の配列のマーシャリング 各種のマーシャリング プラットフォーム呼び出しのデータ型 これらのドキュメントを読んでいると,値型,参照型,blittable 型,非 blittable 型といった,型に関する用語が出てきます. 以下にまとめてみました (blittable の語源だけはわかりませんでしたが...). 値型 (値型) 値型とは,System.ValueType から派生する型のことであり,インスタンスがスタック上に割り当てられます. また値型の変数は,参照型の変数のよう