CLR: .Net / Mono / Boo / Otros CLR > C#

 Importar Dll

(1/3) > >>

E.Baley:
Hola amigos

Aprovecho para presentarme al foro. Soy un programador casual (sólo programo aplicaciones para mi mismo) y autodidacta (no soy informático) pero llevo bastante tiempo programando. La experiencia es un grado, aunque debo admitir que a veces me cuesta demasiado.
En fin, espero pasarme por aquí a menudo, ahora que conozco el foro, y aportar lo que buenamente pueda.

Venga, ahí va la primera pregunta:
¿ dónde puedo aprender a importar dlls compiladas en un programa C# ? (y a usar sus APIs claro). Concretando, ¿ conocéis algún buen tutorial en algún sitio donde lo expliquen ?

muchas gracias

E.Baley:
Perdón por el lapsus, se me olvidó indicar que se trata de una dll de C++.
Me refiero a usar el "[DllImport ... " para dll "unmanaged"
¿ algún tutorial donde lo expliquen desde cero ?
He buscado en CodeProject y otros, pero sin mucho éxito. Aunque hay artículos donde explican algo, ninguno es del tipo "desde el principio".
gracias

RaYWoLF:
Lamentablemente yo tampoco he encontrado ninguna "biblia" de la utilizacion de dll de c++ en c#. De todas formas, salvo que tengas parametros raros tampoco es excesivamente complicado (en mi caso estoy desesperado con unos struct que tengo que enviar...).

En este post (http : // foros.solocodigo.com/index.php?showtopic=27767&st=0) puedes ver algun ejemplo y si tienes algun problema especifico postea que intentare ayudarte (si es que soy capaz, claro).

E.Baley:
Gracias RaYWoLF

Claro, en su momento me leí ese post (y otros muchos) pero mi problema era que no partía de cero y no entendía la mayor parte de las cosas. He estado buceando unos días y he encontrado un poco por aquí, otro por allá ...

Bueno, al final encontré que el libro "C# a fondo" de Tom Archer (McGraw-Hill) tiene un capítulo (el 17) dedicado a Platform Invoke. A partir de esa base, revisando los artículos me he ido enterando más de la película.

Creo que el de Anaya (La biblia de C#) también tiene algo, pero ese no lo tienen en la biblioteca.

En fin, si quieres pon aquí esos structs infernales y les echaremos un ojo, a ver hasta dónde llegamos.

saludos.

RaYWoLF:
Pues a ver si puedo echarle un vistazo a esos libros que comentas. Yo tambien he leido un poco de aqui y otro poco de alla, a ver si con eso consigo terminar de atar cabos.

Sobre los structs, ya puse en el post que te comente la relacion entre tipos de datos que hacia, pero basicamente es esto:


--- Código: Text --- Contenido del .h: typedef struct {PICTURE_TYPE Picture_type;char Serial_number[8];BYTE Range;WORD Code_page;bool bRGB;DWORD Buffer_16bpp_size;} INFO; typedef enum {NORMAL_FOTO,START_FOTO,STOP_FOTO} PICTURE_TYPE; Mi codigo C#:[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]struct INFO{public PICTURE_TYPE Picture_type;[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]public string Serial_number;public byte Range;public ushort Code_page;public bool bRGB;public uint Buffer_16bpp_size;} enum PICTURE_TYPE{NORMAL_FOTO,START_FOTO,STOP_FOTO}  
En otro foro me han comentado que parece ser que .net con los structs no se lleva muy bien y que el soluciono algo similar creando un activex en vb6. Yo de vb6 no tengo ni idea la verdad, y tampoco se que hay de cierto en lo que me han dicho.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa