2012-10-09 17 views
6

Duplicar posibles:
Best way to call Managed .NET code from Unmanaged codeC# como lenguaje de script

Tengo curiosidad por saber si podría posiblemente utilizar C# como lenguaje de script alojado en una aplicación de C++ nativo. He estado trabajando en mi propio motor de juego durante 5 años, pero nunca he tocado el aspecto de scripting. Me gusta cómo en Unity puedo escribir scripts de C# para los diferentes objetos en el juego.

Hice algunas búsquedas pero no pude encontrar nada de uso real.

Tenga en cuenta que mi pregunta no está relacionada con .Net sino con C# como lenguaje general.

Solo para asegurarse, voy a decir esto: no quiero llamar a C++ nativo desde C#. Lo quiero al revés.

Si alguien pudiera indicarme algunos recursos, lo agradecería.

+0

suena factible, siempre que haya una interfaz administrada para lo que desea llamar. – Jodrell

+0

Creo que quizás, [esto] (http://stackoverflow.com/questions/1832293/c-sharp-scripting-language) es un mejor ajuste que el duplicado sugerido. Aunque no diría que es un duplicado exacto, –

+2

C# no está diseñado para ser un lenguaje de scripting. ¿Has considerado (si es posible) el uso de JavaScript? Mire en el motor V8 de Google (que creo que ya es C++), y puede enganchar objetos nativos de C++ desde JavaScript ... Es cierto que JavaScript está diseñado para la web, pero se puede adaptar a otras aplicaciones. – series0ne

Respuesta

5

Sí, lo que quiere hacer es acoger el CLR en su propia aplicación. Aquí hay un artículo de MSDN que lo repasa.

http://msdn.microsoft.com/en-us/magazine/cc301479.aspx

El autor de ese artículo también tiene un libro que cubre todos los aspectos de la misma. Una vez que obtenga el CLR en funcionamiento en su aplicación, si desea un verdadero script, querrá compilar el código dinámicamente, y cirrus le ha proporcionado algunos enlaces sobre cómo hacerlo.

Inevitablemente también deberá exponer partes de su aplicación principal en el espacio de nombres CLR. De lo contrario, no podrá acceder a ninguna de las características específicas de la aplicación de alojamiento principal.

EDIT: cuando digo "scripting verdadero" me refiero a que está utilizando los archivos de texto con la extensión .cs para sus scripts en tiempo de ejecución. Sería más eficiente compilarlos de antemano y luego incluir el .DLL con la aplicación alojada, sin embargo, puede hacerlo en ambos sentidos.

+1

Enlace a CLR Hosting Center Docs: http://msdn.microsoft.com/en-us/library/dd380850.aspx – PaulPerry

0

Es posible que desee ver las fuentes de CSRepl por Rickard Nilsson. Es un intérprete interactivo de C#. No hospeda CLR, ya que está administrado, pero crea un entorno de scripting C#.

Cuestiones relacionadas