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

#6 Rodrigo Corral [MVP]
22/02/2005 - 21:47 | Informe spam
El tamaño que tienes que reservar te lo da la llamada a
GetWindowTextLength!!!!

Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#7 Miguel
23/02/2005 - 09:37 | Informe spam
!!!!!!!! Antes de nada me podrias explicar que es el PSTR, xq a lo mejor lo
estoy utilizando a lo loco y por eso me falla el programa



aunque nose si lo estoy plasmando bien en parte del programa que quiero
hacer mira el trozo de codigo que estoy intentando ejecutar (te lo resumo lo
maximo posible) :

LRESULT CALLBACK WndProc (...)

// Declaracion de variables
static HWND htBox[2] <-- "edit"

char cad , cad1;
int iTxtLen, iTxtLen2;

switch (iMsg)
{
case WM_CREATE:
.
return 0;

case WM_COMMAND:
{
switch(LOWORD(vParam))
{
case 6:
iTxtLen=GetWinowTextLength(htBox[1])+1;
iTxtLen2=GetWinowTextLength(htBox[2])+1;

//Reservar memoria

PSTR cad= (PSTR) VirtualAlloc((LPVOID)
NULL,(DWORD)(iTxtLen),MEM_COMMIT,PAGE_READWRITE);
PSTR cad1= (PSTR) VirtualAlloc((LPVOID)
NULL,(DWORD)(iTxtLen),MEM_COMMIT,PAGE_READWRITE);
GetWindowText(htBox[1],cad,iTxtLen);
GetWindowText(htBox[2],cad1,iTxtLen2);

// Llamar a la funcion

GuardarFichero2(cad,cad1,"c:\\usuarios.txt");


}
}

}


esto me da el siguiente error initialization of cad is skipped by 'case,
label

"Rodrigo Corral [MVP]" escribió en el mensaje
news:uGFov%
El tamaño que tienes que reservar te lo da la llamada a
GetWindowTextLength!!!!

Un saludo
Rodrigo Corral González [MVP]

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



Respuesta Responder a este mensaje
#8 Isidro Muñoz
23/02/2005 - 12:44 | Informe spam
Hola Miguel,

PSTR es un char *,

has declarado arriba
char cad,cad1; y dentro de los switch
PSTR cad= (PSTR) VirtualAlloc((LPVOID)

Has redeclarado a cad, en principio eso no está mal, a no ser que al
compilador se le vaya la pinza, que alguna vez a pasado.

Yo pienso que es un problema de inicializacion, o bien porque el compilar
quiere que lo pongas en un bloque o porque tienes que estar antes del
switch.

Prueba a declarar cad fuera del case y antes de los switch, así averiguaras
si es problema de donde está la declaración, luego es cuestión de investigar
porque el compilaodr no te deja inicializar ahí la variable.

Saludos.
Isidro.


"Miguel" escribió en el mensaje
news:

!!!!!!!! Antes de nada me podrias explicar que es el PSTR, xq a lo mejor


lo
estoy utilizando a lo loco y por eso me falla el programa



aunque nose si lo estoy plasmando bien en parte del programa que quiero
hacer mira el trozo de codigo que estoy intentando ejecutar (te lo resumo


lo
maximo posible) :

LRESULT CALLBACK WndProc (...)

// Declaracion de variables
static HWND htBox[2] <-- "edit"

char cad , cad1;
int iTxtLen, iTxtLen2;

switch (iMsg)
{
case WM_CREATE:
.
return 0;

case WM_COMMAND:
{
switch(LOWORD(vParam))
{
case 6:
iTxtLen=GetWinowTextLength(htBox[1])+1;
iTxtLen2=GetWinowTextLength(htBox[2])+1;

//Reservar memoria

PSTR cad= (PSTR) VirtualAlloc((LPVOID)
NULL,(DWORD)(iTxtLen),MEM_COMMIT,PAGE_READWRITE);
PSTR cad1= (PSTR) VirtualAlloc((LPVOID)
NULL,(DWORD)(iTxtLen),MEM_COMMIT,PAGE_READWRITE);
GetWindowText(htBox[1],cad,iTxtLen);
GetWindowText(htBox[2],cad1,iTxtLen2);

// Llamar a la funcion

GuardarFichero2(cad,cad1,"c:\\usuarios.txt");


}
}

}


esto me da el siguiente error initialization of cad is skipped by 'case,
label

"Rodrigo Corral [MVP]" escribió en el mensaje
news:uGFov%
> El tamaño que tienes que reservar te lo da la llamada a
> GetWindowTextLength!!!!
>
> Un saludo
> Rodrigo Corral González [MVP]
>
> FAQ de microsoft.public.es.vc++
> http://rcorral.mvps.org
>
>
>


Respuesta Responder a este mensaje
#9 Rodrigo Corral [MVP]
23/02/2005 - 21:57 | Informe spam
Debes declarar cad y cad1 solo en un sitio, y como punteros PSTR o char *
que es lo mismo. Supongo que el compilador te esta dando un warning porque
tienes declaradas variables con el mismo nombre en diferentes ambitos.


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida