Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NikNitro! en 30 Abril 2014, 15:39 pm



Título: Error const char no es compatible con LPCWSTR.
Publicado por: NikNitro! en 30 Abril 2014, 15:39 pm
Buenas. Estoy mirándome este post (http://foro.elhacker.net/programacion_cc/tutoc_lecturaescritura_de_datos_de_una_aplicacion_externa_con_ejercicio-t258994.0.html) pero como es antiguo no he querido revivirlo. Resulta que estoy con el principio del código y ya me da error -.-

Lo que llevo actualmente es lo siguiente:

Código
  1. // ConsoleApplication2.cpp: define el punto de entrada de la aplicación de consola.
  2. //
  3.  
  4. #include <iostream>
  5. #include <windows.h>
  6. #include "stdafx.h
  7.  
  8. int main()
  9. {
  10. /* system("cd /Users/Adrián/Downloads/Hack.Slash.Loot && HackSlashLoot.exe && pause");
  11. unsigned long mem = 0x0FAD82E0;
  12. printf("%d\n", mem);
  13. system("pause");
  14. */
  15. // Primero buscaremos la ventana activa.
  16. HWND hVentana;
  17. if (!(hVentana = FindWindow(NULL, "AppLectura")))
  18. {
  19. MessageBox(NULL, "No se pudo encontrar la ventana", "Error", MB_OK);
  20. }
  21. system("pause");
  22.  
  23.  
  24.  
  25.  
  26. return 0;
  27. }
  28.  
  29.  

Estoy en Visual Studio 2013 Original.
 (http://thumbs.subefotos.com/2388b24b47cd6d641b275ab37c75507bo.jpg) (http://subefotos.com/ver/?2388b24b47cd6d641b275ab37c75507bo.png)

Ahí veis el error al que me refiero. El último include me lo recomendaba el error. Es la causa por la que lo he puesto.

Espero me ayudeis.

Gracias.

PD: Lista de errores:
Código:
Error	3	error C2001: nueva línea en constante	c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp	6
Error 4 error C2065: 'HWND' : identificador no declarado c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp 16
Error 5 error C2146: error de sintaxis : falta ';' delante del identificador 'hVentana' c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp 16
Error 6 error C2065: 'hVentana' : identificador no declarado c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp 16
Error 7 error C2065: 'hVentana' : identificador no declarado c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp 17
Error 8 error C3861: 'FindWindow': no se encontró el identificador c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp 17
Error 9 error C2065: 'MB_OK' : identificador no declarado c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp 19
Error 10 error C3861: 'MessageBox': no se encontró el identificador c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp 19
Error 11 error C3861: 'system': no se encontró el identificador c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp 21
12 IntelliSense: se esperaba un nombre de archivo c:\Users\Adrián\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.cpp 6
13 IntelliSense: un argumento de tipo "const char *" no es compatible con un parámetro de tipo "LPCWSTR" c:\Users\Adrián\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.cpp 17
14 IntelliSense: un argumento de tipo "const char *" no es compatible con un parámetro de tipo "LPCWSTR" c:\Users\Adrián\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.cpp 19
15 IntelliSense: un argumento de tipo "const char *" no es compatible con un parámetro de tipo "LPCWSTR" c:\Users\Adrián\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.cpp 19


Título: Re: Error const char no es compatible con LPCWSTR.
Publicado por: eferion en 30 Abril 2014, 15:51 pm
Te faltan unas comillas en el include

Código
  1. #include "stdafx.h // <-----


Título: Re: Error const char no es compatible con LPCWSTR.
Publicado por: NikNitro! en 30 Abril 2014, 15:59 pm
Ok gracias. De todos modos el error me salía desde antes de poner ese include... :s

Salud


Título: Re: Error const char no es compatible con LPCWSTR.
Publicado por: eferion en 30 Abril 2014, 16:38 pm
¿Y qué errores te salen ahora?


Título: Re: Error const char no es compatible con LPCWSTR.
Publicado por: leosansan en 30 Abril 2014, 16:55 pm

En Code::Blocks, sin el #include "stdafx.h" funciona O.K, poniendo, eso sí, la dirección correcta de la ventana, tipo:

"C:\\Users\\Administrador\\Documents\\C\\Analisis Numerico"

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)


Título: Re: Error const char no es compatible con LPCWSTR.
Publicado por: eferion en 30 Abril 2014, 17:04 pm
En Code::Blocks, sin el #include "stdafx.h" funciona O.K, poniendo, eso sí, la dirección correcta de la ventana, tipo:

"C:\\Users\\Administrador\\Documents\\C\\Analisis Numerico"

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)

stdafx es un inventillo de VS para gestionar las cabeceras precompiladas, según creo recordar.


Título: Re: Error const char no es compatible con LPCWSTR.
Publicado por: NikNitro! en 30 Abril 2014, 17:12 pm
¿Y qué errores te salen ahora?

Poniendo la comilla que faltaba:
Citar
1>          Agregar directiva a 'stdafx.h' o recompilar el encabezado precompilado
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(16): error C2065: 'HWND' : identificador no declarado
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(16): error C2146: error de sintaxis : falta ';' delante del identificador 'hVentana'
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(16): error C2065: 'hVentana' : identificador no declarado
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(17): error C2065: 'hVentana' : identificador no declarado
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(17): error C3861: 'FindWindow': no se encontró el identificador
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(19): error C2065: 'MB_OK' : identificador no declarado
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(19): error C3861: 'MessageBox': no se encontró el identificador
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(21): error C3861: 'system': no se encontró el identificador
========== Compilar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========

Quitando ese include:
Citar
1>------ Operación Compilar iniciada: proyecto: ConsoleApplication2, configuración: Debug Win32 ------
1>  ConsoleApplication2.cpp
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(4): warning C4627: '#include <iostream>': se omite al buscar el uso del encabezado precompilado
1>          Agregar directiva a 'stdafx.h' o recompilar el encabezado precompilado
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(5): warning C4627: '#include <windows.h>': se omite al buscar el uso del encabezado precompilado
1>          Agregar directiva a 'stdafx.h' o recompilar el encabezado precompilado
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(29): fatal error C1010: final de archivo inesperado al buscar la directiva de encabezado precompilado. Compruebe si olvidó agregar '#include "stdafx.h"' al código fuente?
========== Compilar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========

Y en lista de errores me sale esto (en el primer caso no me salía el primer error, como es lógico)
Citar
Error   3   error C1010: final de archivo inesperado al buscar la directiva de encabezado precompilado. Compruebe si olvidó agregar '#include "stdafx.h"' al código fuente?   c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp   29
   4   IntelliSense: un argumento de tipo "const char *" no es compatible con un parámetro de tipo "LPCWSTR"   c:\Users\Adrián\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.cpp   17
   5   IntelliSense: un argumento de tipo "const char *" no es compatible con un parámetro de tipo "LPCWSTR"   c:\Users\Adrián\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.cpp   19
   6   IntelliSense: un argumento de tipo "const char *" no es compatible con un parámetro de tipo "LPCWSTR"   c:\Users\Adrián\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.cpp   19

En Code::Blocks, sin el #include "stdafx.h" funciona O.K, poniendo, eso sí, la dirección correcta de la ventana, tipo:

"C:\\Users\\Administrador\\Documents\\C\\Analisis Numerico"

En el post que dije, como ventana solo me salía eso. Nada de una dirección :s

Además voy a probar lo que dice éste link de borrar ese tipo de encabezados:
http://avellano.usal.es/~labssoo/precomp.htm

Saludos y gracias. Ahora os cuento.

EDITO: Ahora solo me da el error del título xP

Código:
1>  ConsoleApplication2.cpp
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(16): error C2664: 'HWND FindWindowW(LPCWSTR,LPCWSTR)' : el argumento 2 no puede convertirse de 'const char [11]' a 'LPCWSTR'
1>          Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función
1>c:\users\adrián\documents\visual studio 2013\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(18): error C2664: 'int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)' : el argumento 2 no puede convertirse de 'const char [32]' a 'LPCWSTR'
1>          Los tipos señalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función
========== Compilar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========


Título: Re: Error const char no es compatible con LPCWSTR.
Publicado por: leosansan en 30 Abril 2014, 18:01 pm
...................................................
En el post que dije, como ventana solo me salía eso. Nada de una dirección :s
.......................................

Eso porque el que hizo el post tenía una ventana con ese nombre. Tu tienes que poner la dirección de una ventana activa para que veas que la detecta. :o

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)


Título: Re: Error const char no es compatible con LPCWSTR.
Publicado por: NikNitro! en 30 Abril 2014, 18:26 pm
Lo se, pero en ese caso me debería devolver un "No se pudo encontrar la ventana". No?
A lo mejor estaba equivocado :s

Saludos y gracias.


Título: Re: Error const char no es compatible con LPCWSTR.
Publicado por: leosansan en 30 Abril 2014, 18:34 pm
Lo se, pero en ese caso me debería devolver un "No se pudo encontrar la ventana". No?.
.........................

Y es justo lo que ocurre:

(http://i1280.photobucket.com/albums/a497/leosansan/GRAFICOS%202/ventananada_zpsc3aa6893.jpg)

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)


Título: Re: Error const char no es compatible con LPCWSTR.
Publicado por: Eternal Idol en 30 Abril 2014, 20:16 pm
Tenes que configurar el proyecto como ANSI, esta en Unicode, o en su defecto poner L adelante de las cadenas (ej. L"HOLA").


Título: Re: Error const char no es compatible con LPCWSTR.
Publicado por: NikNitro! en 30 Abril 2014, 22:27 pm
Eso era!! :p

Para cambiarlo a ANSI (por si a alguien más le pasa) vamos a:
 Proyecto-> Propiedades de <nombre de nuestro proyecto> -> Propiedades de Configuración -> General -> Juego de Caracteres Y lo ponemos como "Sin establecer".

Recuerdo que uso el Visual Studio 2013.

Saludos y gracias a todos;) Marcaré el tema como resuelto


Título: Re: Error const char no es compatible con LPCWSTR.
Publicado por: Eternal Idol en 30 Abril 2014, 22:43 pm
De nadas  ::)