Usuario
Traducir Funcion a C#

Pregunta
-
Saludos, quisiera que me ayuden con algo, estoy haciendo una app que se comunique con impresoras fiscales y utilizo una dll que esta escrita en C++ y tiene unos metodos publicos para comunicarse con el printer, entonces utilizo c# para esto y la dll tiene un metodo que que consigue los campos del buffer que devuelve el printer cuando se le manda un comando
GetMessageField
Captura un campo específico del buffer de respuesta del controlador fiscal. Todos los datos retornados por esta función están en formato binario.[Prototipo]
Funcion DWORD GetMessageField ( BYTE * szField, DWORD * dwFieldLength, DWORD dwAnswerField )[Parámetros de Entrada]
dwAnswerField Posición del campo a ser recuperado del buffer de respuesta del controlador fiscal.
[Parámetros de Salida]
szField Campo buscado en el buffer de entrada.
dwFieldLength Tamaño del campo szField.
[Retorno]
SUCCESS Campo obtenido con éxito
ASWR_INVALID Campo de respuesta solicitado inválido.
ASWR_FIELD_INEXISTENT Campo de respuesta solicitado no existe.
FIELD_INVALID_TYPE Tipo de campo de respuesta inválido.
INVALID_PARAM Parámetro szField y/o dwFieldLength nulo
INTERNAL_ERROR Error interno de la librería.entonces quiero traducir esa funcion a c# y no se como hacerlo
Gracias de antemano
Luis Y. Ramirez Software Developer "Recuerda marcar la repuesta como VALIDA si te ha ayudado"
Todas las respuestas
-
Hola,me parece que el prototipo de tu función sería:
uint GetMessageField(byte[] szField, ref uint dwFieldLength, uint dwAnswerField);
[Edit]He buscado en MSDN por la función GetMessageField. ¿Ésta se distribuye en alguna librería en particular?[/Edit]Saludos.
Fernando Gómez
fermasmas.wordpress.com- Editado Fernando A. Gómez lunes, 19 de septiembre de 2011 19:53
-
Hola,me parece que el prototipo de tu función sería:
uint GetMessageField(byte[] szField, ref uint dwFieldLength, uint dwAnswerField);
[Edit]He buscado en MSDN por la función GetMessageField. ¿Ésta se distribuye en alguna librería en particular?[/Edit]Saludos.
Fernando Gómez
fermasmas.wordpress.com
Si lees bien lo primero que publique lo digo
Saludos, quisiera que me ayuden con algo, estoy haciendo una app que se comunique con impresoras fiscales y utilizo una dll que esta escrita en C++ y tiene unos metodos publicos para comunicarse con el printer, entonces utilizo c# para esto y la dll tiene un metodo que que consigue los campos del buffer que devuelve el printer cuando se le manda un comando
Luis Y. Ramirez Software Developer "Recuerda marcar la repuesta como VALIDA si te ha ayudado" -
Mi pregunta iba más en el sentido de si es alguna librería que se distribuye por Microsoft, por algún OEM, o por terceros, o es una que tú creaste.
De cualquier forma, ya tienes el prototipo, lo cual debe servirte para traducirla a C#, como indicas. Supongo que no querrás usar la DLL escrita en C, pero si lo que quieres es reutilizarla en lugar de traducirla, tendrás que usar una sentencia con extern.
Saludos.
Fernando Gómez
fermasmas.wordpress.com