domingo, 31 de agosto de 2008

/embeber dll en proyecto .NET



En el trabajo se me presentó ese problema: importar una clase de una biblioteca C++ a .NET.
Hasta donde se, no se puede hacer de forma directa, sino que hay 2 posibilidades, y ambas complicadas por sus propios motivos.

a) Usar "ThisCall" en los atributos de las definiciones del Interop. En este caso hay que usar lo que se llama nombres ofuscados del C++: si el método se llama GetValue, hay que usar algo como GetValue@12%32..etc

b) Hacer un ensamblado en C++/CLI que envuelva a la clase de la DLL y luego usarlo en la aplicación como su fuera una clase C# común y corriente. Gran problema, pelearme con C++/CLI.
Me decidí por esta opción porque tiene la ventaja que puede ser utilizado por otros lenguajes.

No encontré demasiados libros sobre el tema, pero menciono dos en formato PDF que me aportaron bastante sobre el tema (ambos en inglés).

Principiante:
Pro Visual C++/CLI and the .NET 2.0 Platform, Stephen R. G. Fraser, Apress
Descargar

Principiante/Intermedio
C++/CLI in Action, Nishant Sivakumar, Manning
Descargar

Artículo de codeproject que sirve de introducción al tema.

(Si alguien tiene otra opción o libro a recomendar, avise, gracias)







No hay comentarios.: