概要
ポインタ経由で配列を渡します。ポインターが指し示す先の配列をC++側で入れ替えることで、新たな配列をC#へと伝達します。
配列とポインター(配列自体の変更)
C#とC++のやりとりは最終的には「ポインター」と「渡したデータのサイズ」の2つがあれば
あとはデータ内容を型に当てはめて解釈するだけとなります。
C#側で確保した(AllocCoTaskMem)メモリはC++側で解放(CoTaskMemFree)、C++側で確保したメモリ(CoTaskMemAlloc)はC#側で解放(FreeCoTaskMem)といった流れにやりやすいので、
その点を気をつけましょう。
-
C++側のソース
-
C#側のソース