Raúl
Moderador
 Moderador
| Mensajes: 444 |  | Karma: 6
|
Usando código no manejado (C++) desde un servicio - 2008/02/27 21:08
A la hora de desarrollar servicios de Robotics Studio en el lenguaje C# (C Almohadilla – C Sharp en inglés) se nos puede presentar la necesidad de llamar a funciones o bibliotecas (libraries) que tenemos disponibles en código no manejado, por ejemplo en una DLL escrita en C++.
Para hacer esto en una aplicación .NET (que sólo genera código manejado) la opción principal es usar los servicios de interoperabilidad con código nativo (Interop Services). En este caso se usa P-Invoke para llamar a APIs no manejadas desde código manejado.
El siguiente enlace explica cómo hacer esto: Using P/Invoke to Call Unmanaged APIs from Your Managed Classes
Lo malo del enfoque anterior es que Interop no permite crear instancias de clases C++ nativas y llamar a sus métodos desde C#. Para poder hacer esto tienes la opción de usar C++/CLI en tu servicio DSS. En definitiva se trata de escribir el servicio DSS en C++ en vez de hacerlo en C#. Tienes ejemplos y tutoriales sobre como hacer esto en los siguientes enlaces:
Basic C++ Robotics Tutorials
More Advanced C++CLI samples: integration with the DDK
Raúl Arrabales Moreno. conscious-robots.com/raul |