2
fixed()ステートメントを使用して固定する必要があるのはいつですか? GetWindowText()呼び出し中にStringBuilderオブジェクトを移動するガベージコレクタを防ぐ何C#ガベージコレクタがオブジェクトを移動させないようにするには、いつピニングが必要ですか?
public class Win32API {
[DllImport("User32.Dll")]
public static extern void GetWindowText(int h, StringBuilder s,
int nMaxCount);
}
public class Window {
internal int h; // Internal handle to Window.
public String GetText() {
StringBuilder sb = new StringBuilder(256);
Win32API.GetWindowText(h, sb, sb.Capacity + 1);
return sb.ToString();
}
}
、そしてなぜ彼らは、固定()文でSBを固定されていません。私はMicrosoftからこのなど、多くの例を参照してください?
固定ステートメントは実際にオブジェクトを固定しないため、1つです。 pinvoke marshallerが本当にピン留めするのは、必要なときだけです。ここでは、文字セットは間違っています。 –