C# からアンマネージ C++ 関数を呼び出したいとしましょう。C++ 関数には次のプロトタイプがあります。
int doSomething(int arraySize, int* array)
そして、次のように C# から関数を呼び出します。
[DllImport(MyLibrary, CallingConvention = CallingConvention.Cdecl)]
public static int doSomething(int arraySize, int[] array)
int[] myArray = new int[] { 1, 2, 3 };
doSomething(myArray.Length, myArray);
- これを行うと、
myArray
固定されますか?アンマネージ ライブラリの作業中に、ガベージ コレクターが配列を別の場所に移動する可能性はありますか? - 自動的に固定されない場合、固定するにはどうすればよいですか?
- 自動的に固定されている場合、再び固定が解除されるのはいつですか?