problemas con arrays de chars y char

22/02/2005 - 12:18 por Miguel | Informe spam
Hola de nuevo


Toi haciendo un GetWindowText(handle,cad,100) kuando lo compilo
me da el siguiente error en el GetWindowText - cannot convert parameter
2 from 'char' to 'char *', antes no me daba el error xq tenia definido cad
como char cad[100], necesito darle un valor al char para que no se me keje
el GetWindowText¿? gracias

Preguntas similare

Leer las respuestas

#1 Isidro Muñoz
22/02/2005 - 12:44 | Informe spam
Hola Miguel.

¿ como tienes actualmente declarado cad ?

Saludos.
Isidro.

"Miguel" escribió en el mensaje
news:
Hola de nuevo


Toi haciendo un GetWindowText(handle,cad,100) kuando lo


compilo
me da el siguiente error en el GetWindowText - cannot convert


parameter
2 from 'char' to 'char *', antes no me daba el error xq tenia definido cad
como char cad[100], necesito darle un valor al char para que no se me


keje
el GetWindowText¿? gracias


Respuesta Responder a este mensaje
#2 Miguel
22/02/2005 - 15:02 | Informe spam
Cuando me a dado el error lo tenia declaro sin el array o sea char cad,
antes lo tenia char cad[100]
"Isidro Muñoz" <imunoz@()daipro.net> escribió en el mensaje
news:
Hola Miguel.

¿ como tienes actualmente declarado cad ?

Saludos.
Isidro.

"Miguel" escribió en el mensaje
news:
> Hola de nuevo
>
>
> Toi haciendo un GetWindowText(handle,cad,100) kuando lo
compilo
> me da el siguiente error en el GetWindowText - cannot convert
parameter
> 2 from 'char' to 'char *', antes no me daba el error xq tenia definido


cad
> como char cad[100], necesito darle un valor al char para que no se me
keje
> el GetWindowText¿? gracias
>
>


Respuesta Responder a este mensaje
#3 Sergio
22/02/2005 - 16:29 | Informe spam
Miguel escribió:
Cuando me a dado el error lo tenia declaro sin el array o sea char cad,
antes lo tenia char cad[100]




¿Y por que quieres hacer eso? Quiero decir, ¿por que quieres declarar
char cad, en vez de char cad[100], que sería lo correcto para lo que
quieres hacer?

Para que GetWindowText recoja en una variable el valor de forma
correcta, lo debe hacer en un array de caracteres, no en un único caracter.
Respuesta Responder a este mensaje
#4 Rodrigo Corral [MVP]
22/02/2005 - 16:35 | Informe spam
Tu código fallaria estrepitosamente si el caption de la ventana tiene más de
100 caracteres!!! Encima podria suponer un riesgo para la seguridad de tu
aplicación y los sistemas que la corren. La manera correcta de usar
GetWindowText, evitanado buffer overruns. Si estas usando MFC o ATL/WTL
mucho mejor que llames a la funcion miembro GetWindowText de la clase CWnd o
CWindow que retorna un CString.

int iTxtLen = GetWindowTextLength(hwnd) + 1;

//Reservar memoria suficiente

PSTR pszMem = (PSTR) VirtualAlloc((LPVOID) NULL,
(DWORD) (iTxtLen), MEM_COMMIT,
PAGE_READWRITE);

GetWindowText(hwnd, pszMem, iTxtLen);

Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#5 Miguel
22/02/2005 - 18:45 | Informe spam
No estoy utilizando MFC estoy haciendolo solo con Api win32, no es por nada
en particular es que me lo han mandado asi jeje (praqctica de clase) , pero
de la forma que me dices cuando declare la variable del tipo char nunca
sabre que cantidad tendre quie poner el array, no¿?
"Rodrigo Corral [MVP]" escribió en el mensaje
news:
Tu código fallaria estrepitosamente si el caption de la ventana tiene más


de
100 caracteres!!! Encima podria suponer un riesgo para la seguridad de tu
aplicación y los sistemas que la corren. La manera correcta de usar
GetWindowText, evitanado buffer overruns. Si estas usando MFC o ATL/WTL
mucho mejor que llames a la funcion miembro GetWindowText de la clase CWnd


o
CWindow que retorna un CString.

int iTxtLen = GetWindowTextLength(hwnd) + 1;

//Reservar memoria suficiente

PSTR pszMem = (PSTR) VirtualAlloc((LPVOID) NULL,
(DWORD) (iTxtLen), MEM_COMMIT,
PAGE_READWRITE);

GetWindowText(hwnd, pszMem, iTxtLen);

Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida