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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problemas con Visual c++ 2008
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas con Visual c++ 2008  (Leído 4,283 veces)
Mr.Blue


Desconectado Desconectado

Mensajes: 441



Ver Perfil WWW
Problemas con Visual c++ 2008
« en: 19 Noviembre 2010, 19:45 pm »

Hola gente!
Les comenento que instale recientemente Visual c++ 2008, pero no se porq no me compila, algunas cosas.

Por ej:

Código
  1. #include <stdio.h>
  2.  
  3. int main (){
  4. int i;
  5. for (i=0;i<5;i++)
  6. printf ("Hola\n");
  7. return 0;
  8. }

Esto compila

Código
  1. #include <windows.h>
  2. #include <stdio.h>
  3.  
  4.  
  5.  
  6. int main()
  7. { char pro[40];
  8. HANDLE proceso;
  9.  
  10. printf ("Ingrese proceso a buscar: ");
  11. gets (pro);
  12. printf ("cadena a buscar: %s\n", pro);
  13. HWND encontre = FindWindow(NULL, pro); // FindWindows Buesca un proceso del sistema por el nombre de la pantalla sintaxis a=FindWindow(Null, Arg1);
  14.                                       //  RETORNO tiene valor de retorno del tipo HWND; NULL nulo, arg1 argumento 1 nombre a buscar ej Windows Live Messenjer
  15. if (encontre == 0)
  16. printf ("Ventana cerrada\n\a");
  17. //MessageBox(NULL, "No se esta ejecutando Pinball", "Error", MB_OK | MB_ICONERROR);
  18. //return -1;
  19. else {
  20. printf ("Ventana abierta\n\a");
  21. DWORD pid; //DWORD pid; //se declara variable del tipo DWORD (variable de 32bit)
  22. GetWindowThreadProcessId(encontre,&pid); //toma processo que se encontro en FindWindow y delvuelve el proceso PID sintaxis
  23.                                                                                                //GetWindowThreadProcessId(encontre,&pid); // (_HWND Arg1, _DWORD Arg2);
  24. MessageBox (NULL,"Encontrado", "Encontrado", MB_OK | MB_ICONINFORMATION);
  25.  
  26. printf ("PID:%d\n",pid);
  27. proceso =OpenProcess(PROCESS_ALL_ACCESS,0,pid); // Abrir processo con todos los accesos tiene valor de retorno del tipo HANDLE
  28. CloseHandle(proceso);} //cierro variable tipo Handle del valor proceso
  29. return 0;
  30. }

Esto no lo compila.
Errores que me da.

Citar
1>Compilando...
1>codigo.cpp
1>c:\users\juanca\documents\visual studio 2008\projects\captura\captura\codigo.cpp(12) : warning C4996: 'gets': This function or variable may be unsafe. Consider using gets_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(279) : vea la declaración de 'gets'
1>c:\users\juanca\documents\visual studio 2008\projects\captura\captura\codigo.cpp(14) : error C2664: 'FindWindowW' : no se puede convertir el parámetro 2 de 'char [40]' 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\juanca\documents\visual studio 2008\projects\captura\captura\codigo.cpp(25) : error C2664: 'MessageBoxW' : no se puede convertir el parámetro 2 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>El registro de compilación se guardó en el "file://c:\Users\juanca\Documents\Visual Studio 2008\Projects\captura\captura\Debug\BuildLog.htm"
1>captura - 2 errores, 1 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========


Lo raro es que compilando con cualquier otro compilador no tengo problemas.


En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Problemas con Visual c++ 2008
« Respuesta #1 en: 19 Noviembre 2010, 19:59 pm »

Citar
1>c:\users\juanca\documents\visual studio 2008\projects\captura\captura\codigo.cpp(12) : warning C4996: 'gets': This function or variable may be unsafe. Consider using gets_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(279) : vea la declaración de 'gets'


gets esta marcada como deprecated. Por esa razón te aparece un warning, puedes deshabilitar ese warning mediante pragma o utilizar una funciona segura como fgets.

Citar
1>c:\users\juanca\documents\visual studio 2008\projects\captura\captura\codigo.cpp(14) : error C2664: 'FindWindowW' : no se puede convertir el parámetro 2 de 'char [40]' a 'LPCWSTR'

Tu proyecto esta configurado para que trabaje con UNICODE, por esa razón llamas a las funciones respectivas (***W) y por ende los parametros no son los correctos.
MessageBox

Código
  1. MessageBox (NULL,L"Encontrado", L"Encontrado", MB_OK | MB_ICONINFORMATION);

Para el resto de los errores aplica el mismo criterio. Ten en cuenta que LPCWSTR significa:

Código
  1. typedef const wchar_t* LPCWSTR;


Busca en el foro que hay bastantes explicaciones sobre este tipo de errores y el manejo de UNICODE.

Saludos!


« Última modificación: 19 Noviembre 2010, 20:04 pm por Littlehorse » En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Mr.Blue


Desconectado Desconectado

Mensajes: 441



Ver Perfil WWW
Re: Problemas con Visual c++ 2008
« Respuesta #2 en: 19 Noviembre 2010, 20:07 pm »

ah.. pense q era porblema de la sdk o algo de eso,  :-\ gracias!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines