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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda pasar de LPWSTR a char *
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Duda pasar de LPWSTR a char *  (Leído 5,908 veces)
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.959


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda pasar de LPWSTR a char *
« Respuesta #10 en: 13 Noviembre 2014, 15:49 pm »

pues si toda la razon uso ansi. entonces mejor especificar
Código
  1. GetWindowTextA

PD: prueba
Código
  1. char n[60];
  2.    GetWindowTextA(hwnd,(LPTSTR)n,60);


No hace falta en realidad, eso se hace automaticamente con los .h de Windows, al igual que el casting a LPTSTR (en ANSI es char *, no cambia nada y si lo hiciera - en el caso de que tu variable fuera de tipo wchar_t por ejemplo - seria un problema, como en el codigo de Kaxperday). No se acostumbren a poner castings por poner, usenlos cuando sea necesario.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
daryo


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Duda pasar de LPWSTR a char *
« Respuesta #11 en: 13 Noviembre 2014, 15:56 pm »

entonces asi?
Código
  1. char *n;
  2. GetWindowText(hwnd,n,60);
  3.  
bueno me rindo xD


« Última modificación: 13 Noviembre 2014, 16:02 pm por daryo » En línea

buenas
someRandomCode

Desconectado Desconectado

Mensajes: 250



Ver Perfil
Re: Duda pasar de LPWSTR a char *
« Respuesta #12 en: 13 Noviembre 2014, 16:05 pm »

entonces asi?
Código
  1. char *n;
  2. GetWindowText(hwnd,n,60);
  3.  
bueno me rindo xD

Nop, porque el puntero ese no tiene memoria asignada.
Para eso existe la funcion GetWindowTextLength (A y W)
Si vas a usar las funciones con ANSI y queres llamarlas como GetWindowText por ejemplo, podes poner en la cabecera un #undef UNICODE


EDIT: Edito para agregar a que me referia

Usa malloc/new/HeapAlloc/GlobalAlloc/la forma de obtener la memoria dinamica que mas te guste o bien declara un array con el tamaño suficiente para almacenar los titulos de las ventanas.
Con GetWindowTextLength(http://msdn.microsoft.com/en-us/library/windows/desktop/ms633521(v=vs.85).aspx) dado un HWND te dice cuantos caracteres tiene el titulo, a eso le sumas uno para el '\0' (caracter terminador).
Despues si llamas tranquilamente a GetWindowText
« Última modificación: 13 Noviembre 2014, 16:09 pm por someRandomCode » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.959


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda pasar de LPWSTR a char *
« Respuesta #13 en: 13 Noviembre 2014, 16:06 pm »

entonces asi?
Código
  1. char *n;
  2. GetWindowText(hwnd,n,60);
  3.  
bueno me rindo xD

No  ;D El anterior estaba bien, solo que el casting era redundante.

someRandomCode: mejor configurar el proyecto en el IDE para no tener que "desdefinir" nada.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
daryo


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Duda pasar de LPWSTR a char *
« Respuesta #14 en: 13 Noviembre 2014, 16:09 pm »

No  ;D El anterior estaba bien, solo que el casting era redundante.

someRandomCode: mejor configurar el proyecto en el IDE para no tener que "desdefinir" nada.
a bueno gracias ya entendi xD
si fuera mi posts le pondria chulo
En línea

buenas
someRandomCode

Desconectado Desconectado

Mensajes: 250



Ver Perfil
Re: Duda pasar de LPWSTR a char *
« Respuesta #15 en: 13 Noviembre 2014, 16:10 pm »

No  ;D El anterior estaba bien, solo que el casting era redundante.

someRandomCode: mejor configurar el proyecto en el IDE para no tener que "desdefinir" nada.

Es que uso Sublime Text e invoco MSVC o Mingw-w64 desde la terminal porque sino me parece que se me pasan de largo algunas cositas.. Algunos IDE pasan por defecto -fpermissive (dev-cpp) que es mala idea jeje, porque no te avisa de algunas cosas por ejemplo con los punteros a funciones y la convencion con la que llamarla..
PD: Te debo una cervecita por la ayuda del otro dia :)
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pasar int to char y Viceversa
Programación C/C++
rembolso 3 4,389 Último mensaje 29 Enero 2011, 19:03 pm
por The Swash
duda doble puntero char a matriz de char
Programación C/C++
neo_from_cs_matrix 3 6,258 Último mensaje 5 Septiembre 2011, 03:53 am
por rir3760
Como pasar una cadena char a hexadecimal por argumento a un constant char?
Programación C/C++
ahaugas 3 5,655 Último mensaje 13 Enero 2013, 14:09 pm
por ahaugas
Pasar tipo const char* a char « 1 2 »
Programación C/C++
jorge_hura 15 11,465 Último mensaje 25 Julio 2013, 09:50 am
por Eternal Idol
Convertir LPWSTR a char **
Programación C/C++
patilanz 3 2,114 Último mensaje 12 Agosto 2015, 14:10 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines