none
Acceso a codigo manejado desde codigo no manejado (MFC) C++ RRS feed

  • Pregunta

  • Hola,

     

    No sé si lo que quiero hacer es posible y por eso pido ayuda. La cosa es que tengo que utilizar una clase generada por la herramienta xsd de Visual Studio 2010 a patir de un fichero .xsd. Esta clase es generada como código manejado. El código que debe utilizar esta clase no es código manejado, es código MFC. ¿Puedo utilizar esta clase para obtener la información de los xml que voy a procesar?

     

    Voy a explicar un poco más lo que hace la aplicación: Esta aplicación va a recibir y a enviar mensajes xml. La aplicación ya tiene unos años y es código no manejado.

     - Cuando tenga que enviar un mensaje xml, quiero utilizar la clase generada por el xsd para construir el mensaje (serializar).

     - Por otro lado, cuando reciba el xml, quier utilizar la clase para obtener un objeto de esa clase con la información del xml (deserializar) 

     

    Muchas Gracias 

     

    Saludos


    viernes, 26 de agosto de 2011 8:44

Todas las respuestas

  • Mmmm...

    Una solución podría ser generar una DLL en .NET con los métodos para serializar y deserializar y exponerla como un objeto COM. Luego desde C++ puedes consumir este objeto COM. Aquí se explica un poco el procedimiento: http://www.codeproject.com/KB/cs/ManagedCOM.aspx Ahora bien, eso implica entrar en el mundo de COM (ya sabes el registro y todo eso...).

    Sólo es para leer un xml? Has echado un vistazo a xerces? (http://xerces.apache.org/xerces-c/)

    Saludos!

     


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    martes, 30 de agosto de 2011 6:51
  • Hola Eduard,

     

    Muchas gracias por la respuesta. Al final he dejado de lado esta solución, y voy a utilizar xsd (http://www.codesynthesis.com/) y así no tengo que hacer nada raro con el código manejado. La aplicación es una aplicación crítica en nuestro sistema y no queremos introducir elementos que pudieran dar fallos.

    Lo de utilizar xerces directamente (xsd lo utiliza internamente) lo he descartado ya que esta herramienta (xsd) facilita el desarrollo de los mensajes XML.

     

    Saludos

    martes, 30 de agosto de 2011 9:15