elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  No se muestra el texto Borland c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No se muestra el texto Borland c++  (Leído 1,916 veces)
Juanma_faust

Desconectado Desconectado

Mensajes: 5


Ver Perfil
No se muestra el texto Borland c++
« en: 19 Junio 2010, 21:46 pm »

Hola que tal? veran necesito cojer el texto de un boton mediante las API de windows con Borland C++,yo lo e echo asin:
Código
  1. //* Boton*//
  2.  
  3. HWND Ventana = FindWindow(0,"Form1");
  4. void *Boton = FindWindowEx(Ventana,0,"Button",0);
  5. char *text;
  6. GetWindowText(Boton,text,sizeof(text));
  7. MessageBox(0,text,0,0);
  8.  

pero me muestra texto muy raro no me muestra el texto me muestra caracteres muy raros,que es lo que pasa?

saludos


En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: No se muestra el texto Borland c++
« Respuesta #1 en: 19 Junio 2010, 21:49 pm »

Debe ser porque a la variable text no le asignas espacio de memoria :P

Ver malloc o alloc

Salu10.


« Última modificación: 19 Junio 2010, 21:51 pm por nicolas_cof » En línea

Juanma_faust

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: No se muestra el texto Borland c++
« Respuesta #2 en: 19 Junio 2010, 22:18 pm »

a...vaya pues en otros IDEs no hacia falta usar malloc :S ya se solucionó el problema,hice lo siguiente:
Código
  1. char *Text = (char*)malloc(1000);
  2.  
eso me funciono pero no sabia que se tenia que hacer asin puesto que con Dev-Cpp no hacia falta :S


muchas gracias!
En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: No se muestra el texto Borland c++
« Respuesta #3 en: 19 Junio 2010, 22:23 pm »

Es raro que en Dev-Cpp no lo hayas tenido que hacer :¬¬

Igual para que te quede mas prolijo...

Código:
char *text = malloc( 1000 * sizeof( char ) );

No es necesario hacer el casting, ya que malloc devuelve algo de tipo void*

No te olvides de luego llamar a la funcion free() para liberar esa memoria pedida.

Salu10.
« Última modificación: 19 Junio 2010, 22:27 pm por nicolas_cof » En línea

Juanma_faust

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: No se muestra el texto Borland c++
« Respuesta #4 en: 19 Junio 2010, 22:40 pm »

ok gracias si lo del free ya lo sabia,ya lo hice muchas gracias
En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: No se muestra el texto Borland c++
« Respuesta #5 en: 19 Junio 2010, 22:41 pm »

Juanma_faust, de nada!

Salu10.
En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: No se muestra el texto Borland c++
« Respuesta #6 en: 20 Junio 2010, 01:08 am »

Si estas utilizando WINAPI siempre es recomendable utilizar los tipos de datos que están declarados en ella, como por ejemplo HWND, HANDLE, etc. De esta forma el código puede comprenderse mejor, por mas que void* técnicamente este ""bien"".

Por otro lado ten en cuenta que al reservar memoria dinámica, sizeof no te devuelve el tamaño reservado sino el tamaño del tipo de dato (Es decir, un puntero, 4 bytes) por lo tanto cualquier texto que supere los 4 bytes sera truncado cuando GetWindowText lo copie al buffer (text).

Y en la medida de lo posible utiliza otro entorno de trabajo que tanto Devcpp como Borland están obsoletos.

Saludos

« Última modificación: 20 Junio 2010, 01:10 am por Littlehorse » En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Número en texto muestra formulario
Programación Visual Basic
do-while1 3 1,626 Último mensaje 8 Abril 2013, 06:53 am
por tincopasan
¿Sacar el texto que muestra de una imagen?
Dudas Generales
Orb 3 1,364 Último mensaje 4 Marzo 2015, 12:37 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines