Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]
// ConsoleApplication2.cpp: define el punto de entrada de la aplicación de consola.
//

#include <iostream>
#include <windows.h>
#include "stdafx.h

int main()
{
/* system("cd /Users/Adrián/Downloads/Hack.Slash.Loot && HackSlashLoot.exe && pause");
unsigned long mem = 0x0FAD82E0;
printf("%d\n", mem);
system("pause");
*/
// Primero buscaremos la ventana activa.
HWND hVentana;
if (!(hVentana = FindWindow(NULL, "AppLectura")))
{
MessageBox(NULL, "No se pudo encontrar la ventana", "Error", MB_OK);
}
system("pause");




return 0;
}



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: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

#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
Cita de: 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)

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
Cita de: eferion en 30 Abril 2014, 16:38 PM
¿Y qué errores te salen ahora?

Poniendo la comilla que faltaba:
Citar1>          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:
Citar1>------ 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)
CitarError   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

Cita de: 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"

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

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
Cita de: NikNitro! en 30 Abril 2014, 17:12 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
Cita de: 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?.
.........................

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  ::)