none
Traducir Funcion a C# RRS feed

  • 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"
    lunes, 19 de septiembre de 2011 13:38

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
    lunes, 19 de septiembre de 2011 14:33
  • 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"
    lunes, 19 de septiembre de 2011 20:56
  • 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
    martes, 20 de septiembre de 2011 0:10