¿Qué es [DllImport ("QCall")]
Muchos métodos en la biblioteca .Net se implementan en código nativo. Los que provienen del propio marco están marcados con[MethodImpl(MethodImplOptions.InternalCall)]
. Los que provienen de una DLL no administrada están marcados con[DllImport]
(p.ej.[DllImport("kernel32.dll")]
). Hasta ahora nada inusual.
Pero mientras escribesresponda para otra pregunta, Descubrí que hay muchos métodos marcados con[DllImport("QCall")]
. Parecen ser una implementación interna de .Net (por ejemplo,GC._Collect()
).
Mi pregunta es: ¿Qué hace exactamente[DllImport("QCall")]
significa? Cuál es la diferencia entre[DllImport("QCall")]
y[MethodImpl(MethodImplOptions.InternalCall)]
?