2009-08-23 7 views
6

¿Hay alguna manera de alojar el tiempo de ejecución de .NET CLR y registrar las funciones MethodImplOptions.InternalCall? (Este no es un tema sobre P/Invoke).NET CLR InternalCall

Respuesta

3

El código SSCLI (específicamente clr \ src \ vm \ ecall.cpp) sugiere que no hay forma de registrar los métodos InternalCall, porque la tabla crucial gECClasses está codificada.

+0

¿La API real es diferente de la versión de fuente compartida? – jameszhao00

+0

Sí, pero ¿cómo? ... Solo puedo sugerir que enciendas tu IDA y, en una mano, símbolos públicos, código SSCLI en la otra, buceando en 'mscorwks.dll'. –

+0

He visto a muchas personas hacer esta pregunta en foros: o bien quieren llamar a algo en una DLL de C++ y piensan que esta podría ser la manera de hacerlo, o de lo contrario nunca dicen lo que quieren hacer. La respuesta de cualquier manera es "No". Fuera de interés, ¿por qué quieres hacer esto? –

0

IMetaDataImport es su mejor opción, pero realmente no puedo responder por eso. Esto parece una tarea específica para C++/CLI.

+0

Camino de la marca, -1 –

+0

¿Qué es exactamente "camino fuera de la marca" aquí? Si no hay forma de hacer que InternalCall funcione usando la API COM, P/Invoke no es una opción, entonces C++/CLI es la mejor (¿solo?) Forma de administrarse-> sin administrar. – arul

+0

InternalCall está por debajo del nivel de CLI, entonces C++/CLI. La pregunta de jameszhao es muy específica sobre lo que él quiere. –

Cuestiones relacionadas