• Jueves 2 de Mayo de 2024, 05:21

Autor Tema:  Interfaz grafica con funciones y DLL  (Leído 2877 veces)

jask2007

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Interfaz grafica con funciones y DLL
« en: Martes 4 de Enero de 2011, 01:18 »
0
Que tal, saben que programo en C++, y esta vez quiero hacer una interfaz con la libreria radc++ del DEV. Pero aún no se como se imprime el valor de una funcion que devuelve la librería dinamica mpusbapi.dll. Espero que alguien me pueda ayudar y si requiere de más informacion se la proporcionaré. Cualquier ayuda la agradezco de antemano.º

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Interfaz grafica con funciones y DLL
« Respuesta #1 en: Miércoles 19 de Enero de 2011, 07:15 »
0
Yo ya he usado la mpusbapi.dll en varios lenguajes, pero para que aquí se te ayude hace falta más información :P.
La imaginación es el límite.
Hardware & Software | Mexchip

jask2007

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Interfaz grafica con funciones y DLL
« Respuesta #2 en: Miércoles 19 de Enero de 2011, 07:28 »
0
Si, mira. La mpusbapi tiene una funcion que retorna un valor de la version, entonces existe una libreria radc++ en el DEV. Lo que busco o quiero hacer, es que dicho valor se muestre en un "dialogo" al presionar un boton. El punto es que los mensajes que he manejado con esta libreria son como "constantes", es decir son declarados y no son valores ni de variables, arreglos, mucho menos de funciones.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Interfaz grafica con funciones y DLL
« Respuesta #3 en: Miércoles 19 de Enero de 2011, 17:30 »
0
Depende de qué tipo de variable te devuelve y el tipo necesario para colocar el texto en el control.
Si la función a la que te refieres es esta:

Código: C
  1. DWORD MPUSBGetDLLVersion( void );
  2.  
Te indica que el número de versión lo devuelve como un tipo DWORD, que no es otra cosa más que un entero de 32 bits. Ahora, desconozco los tipos que el control "dialogo" de RadC++ (a biblioteca que mencionas) utilice para su propiedad texto (o caption, no se), pero debes realizar la conversión para poder asignar el valor al control.

Si te complicas con la conversión, coméntalo aquí para que te echemos la mano (menciona el tipo de variable que necesita el control).
La imaginación es el límite.
Hardware & Software | Mexchip

jask2007

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Interfaz grafica con funciones y DLL
« Respuesta #4 en: Miércoles 19 de Enero de 2011, 17:51 »
0
El problema es la conversion, ya que para mostrar los mensajes se utiliza ON_MESSAGE(___msg___). Y no se como realizarla

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Interfaz grafica con funciones y DLL
« Respuesta #5 en: Miércoles 19 de Enero de 2011, 18:00 »
0
¿Qué tipo de variable es la que pasas para mostrar el texto? A eso me refiero. ¿Un std::string, un char*, CString, LPCTSTR? Dependiendo del tipo de variable, será el modo de convertirla :).

Por ejemplo, usando CString, sería algo como esto:

Código: C
  1.  
  2. DWORD version = 1000;
  3. CString str;
  4.  
  5. str.Format( "%lu", version );
  6.  
  7.  
La imaginación es el límite.
Hardware & Software | Mexchip

jask2007

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Interfaz grafica con funciones y DLL
« Respuesta #6 en: Miércoles 19 de Enero de 2011, 19:39 »
0
Un int32 o DWORD, la funcion devuelve el valor en hexadecimal.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Interfaz grafica con funciones y DLL
« Respuesta #7 en: Miércoles 19 de Enero de 2011, 20:07 »
0
No me refiero al tipo que devuelve MPUSBGetDLLVersion, que ya te mencioné es DWORD, sino la que tú tienes que pasarle al diálogo con el texto a mostrar. Repito, no he usado RadC++ y por eso desconozco si usa tipos de la WINAPI o de alguna biblioteca de Windows (MFC).

Te puse un ejemplo para convertir un DWORD a CString, para el caso que dicho diálogo acepte un tipo CString.
La imaginación es el límite.
Hardware & Software | Mexchip

jask2007

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Interfaz grafica con funciones y DLL
« Respuesta #8 en: Miércoles 19 de Enero de 2011, 21:30 »
0
mejor hechale un vistazo a la documentacion de la radc++:

......radcpp.com/documentation/

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Interfaz grafica con funciones y DLL
« Respuesta #9 en: Jueves 20 de Enero de 2011, 00:31 »
0
Mmm, eso te toca a ti :p. En un vistazo rápido encontré la clase String, que supongo es la que se ha de usar para los textos de los componentes. El problema es que la documentación no muestra ningún constructor ni inicializador de esta clase :bad:, ¿cómo voy a saber a partir de qué puedo crearla? Tampoco se ve que tenga una función format como la clase CString de MFC.

En fin, imagino que se podrá usar una cadena "al estilo C" para inicializar, entonces, puedes convertir el valor DWORD a un array de char usando sprintf, después lo usas para inicializar tu variable String que le pasarás al diálogo, algo como esto:
Código: C
  1.  
  2. DWORD dwVersion = MPUSBGetDLLVersion();
  3. char sVersion[ 16 ];
  4.  
  5. sprintf( sVersion, "%lu", dwVersion );
  6.  
  7. String strVersion( sVersion );
  8.  
  9.  
Nota: no estoy en Windows ni tengo la intención de instalar RadC++, así que no se si ese código funcione, pero al menos debe darte una idea ;).

Suerte.
La imaginación es el límite.
Hardware & Software | Mexchip