Error const char no es compatible con LPCWSTR.

Iniciado por NikNitro!, 30 Abril 2014, 15:39 PM

0 Miembros y 2 Visitantes están viendo este tema.

NikNitro!

Buenas. Estoy mirándome este post 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.


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

eferion

Te faltan unas comillas en el include

#include "stdafx.h // <-----

NikNitro!

Ok gracias. De todos modos el error me salía desde antes de poner ese include... :s

Salud

eferion


leosansan


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! ..... !!!!



eferion

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! ..... !!!!



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

NikNitro!

#6
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 ==========

leosansan

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! ..... !!!!



NikNitro!

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.

leosansan

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:



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