Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


onsumir dll en c++ desde c#

Foro sobre el nuevo lenguaje C# conocido tambien como CSharp o C Numeral

Moderador: Bestprogramado

onsumir dll en c++ desde c#

Notapor me4tatel el Jue Ene 17, 2008 11:48 am

Conozco en general c# y practicamente nada de c++, pero nececito accesar desde una PDA un lector de huella digital. Para que puedo comunicarme con el lector de huella y obtener la huella, esta disponible un dll hecho en c++. El dll contiene varios metodos. Para utilizar los metodos estoy usando DllImport.

Es un ejemplo del primer metodo:

[DllImport("RDTAPIWM.dll", EntryPoint = "InitializeAPI")]
public static extern long InitializeAPI();

Este metodo no tiene parametros por lo tanto no tuve problemas, el problema para mi viene en el siguinte metodo donde tengo que pasar ciertos parametros, en la documetacion del dll viene la siguiente definicion:

RDT_API long STDCALL OpenDevice( void **devHandle, int commPort, long (STDCALL *myCallbk)(unsigned long event, struct s_devStatus *devStatus) );

Desconozco como formar el primer y tercer parametro. Me imagino que el tercer parametro es una funcion que controla los eventos.

Me gustaria si puedo recibir alguna orientacion o ayuda al respecto.
me4tatel
Novato
Novato
 
Mensajes: 1
Registrado: Jue Ene 17, 2008 11:46 am

Re: onsumir dll en c++ desde c#

Notapor ivancp el Jue Ene 17, 2008 9:07 pm

En C# (al igual que Java) los punteros son un poco dificiles de manipular ya que no estan orientados a ello. Te recomiendo que lo que necesites hacer lo hagas en Visual C++, en ese lenguaje tendras que implementar las funciones que necesites, de tal forma que puedas crear un DLL propio que tenga funciones mas faciles de invocar, por ejemplo puedes implementar tu propio codigo que lea datos del PDA:

En Visual C++

char * LeerDatos();

Que puedes utilizar luego en C# sin ninguna preocupacion de conversiones y otros.

String leidos = LeerDatos();
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 369
Registrado: Jue Sep 06, 2007 12:57 pm


Volver a C# (CSharp)

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados