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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  error C2664: 'DialogBoxParamA'
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: error C2664: 'DialogBoxParamA'  (Leído 2,546 veces)
xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
error C2664: 'DialogBoxParamA'
« en: 13 Junio 2010, 09:02 am »

bue antes que nada debo decir que busque lo que dice el titulo y no encontre algo que me ayude en este foro y en Google, o tal vez no supe entender con lo que me tope, asi que les pido ayuda pls.
recien me termine de ver estos 29 tutoriales, y empeze un nuevo proyecto y antes que nada ya tengo un error.

Código
  1. // Dialog.cpp: implementation of the Dialog class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4.  
  5. #include "..\HEADER FILES\Dialog.h"
  6.  
  7.  
  8. //#include <windows.h>
  9. //////////////////////////////////////////////////////////////////////
  10. // Construction/Destruction
  11. //////////////////////////////////////////////////////////////////////
  12.  
  13. xDialog::xDialog(){IsShowed = false;}
  14. xDialog::~xDialog(){}
  15.  
  16. BOOL CALLBACK xDialog::DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){
  17. switch (message){
  18. case WM_INITDIALOG:
  19. break;
  20. case WM_CLOSE:
  21. //EndDialog(hDlg, 0);
  22. break;
  23. }
  24. return FALSE;
  25. }
  26.  
  27. void xDialog::Show(){
  28. extern HINSTANCE hInst;
  29. if(!xDialog::IsShowed){
  30. MessageBox(NULL, "true","",MB_OK);
  31. }else{
  32. //int aa = DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG1),0,xDialog::DialogProc);
  33. DialogBox( hInst,MAKEINTRESOURCE(IDD_DIALOG1),0,xDialog::DialogProc);
  34. IsShowed =false;
  35. }
  36.  
  37. }
  38.  

Código
  1. // Dialog.h: interface for the Dialog class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4.  
  5. #if !defined(AFX_DIALOG_H__06732DBB_9D27_41B9_A3A2_ECEEC8128230__INCLUDED_)
  6. #define AFX_DIALOG_H__06732DBB_9D27_41B9_A3A2_ECEEC8128230__INCLUDED_
  7.  
  8. #if _MSC_VER > 1000
  9. #pragma once
  10. #endif // _MSC_VER > 1000
  11.  
  12. #include <windows.h>
  13. #include "Commctrl.h" // Link: Comctl32.lib
  14. #include "resource.h"
  15. class xDialog  
  16. {
  17. public:
  18.  
  19. xDialog();
  20. ~xDialog();
  21.  
  22. void Show();
  23. private:
  24. bool IsShowed;
  25. BOOL CALLBACK DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  26.  
  27.  
  28.  
  29.  
  30. // END OF CLASS //////////////////////
  31. };
  32.  
  33.  
  34. #endif // !defined(AFX_DIALOG_H__06732DBB_9D27_41B9_A3A2_ECEEC8128230__INCLUDED_)
  35.  

Código
  1. //Main.cpp
  2. #include <windows.h>
  3. #include "Commctrl.h" // Link: Comctl32.lib
  4. #include "..\HEADER FILES\Dialog.h"
  5.  
  6. HINSTANCE hInst;
  7. int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow){
  8.  
  9. hInst = hInstance;
  10. return 0;
  11. }
  12.  
  13.  

ERROR: Dialog.cpp(33) : error C2664: 'DialogBoxParamA' : cannot convert parameter 4 from 'int (struct HWND__ *,unsigned int,unsigned int,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,l
ong)'
        None of the functions with this name in scope match the target type.

estoy utilizando VS C++6.0
¿Como puedo arreglar esto, ya no se por donde mirar?


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


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


Ver Perfil WWW
Re: error C2664: 'DialogBoxParamA'
« Respuesta #1 en: 13 Junio 2010, 13:10 pm »

Tenes que hacer al metodo estatico, el callback no puede pasarte el puntero this del objeto. Lo podes meter en el GWL_USERDATA con SetWindowLong y sacarlo despues con GetWindowLong:

Código
  1. xDialog *thisDialog = (xDialog*)GetWindowLong(hDlg, GWL_USERDATA);


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
xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: error C2664: 'DialogBoxParamA'
« Respuesta #2 en: 13 Junio 2010, 13:43 pm »

muchas gracias...
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


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


Ver Perfil WWW
Re: error C2664: 'DialogBoxParamA'
« Respuesta #3 en: 13 Junio 2010, 13:55 pm »

De nadas  ::)
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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error C2664: 'WNetGetUserW' que puede ser?
Programación C/C++
L0Ko 4 2,136 Último mensaje 20 Julio 2012, 20:38 pm
por BlackZeroX
Ayuda con C++ 2010 error C2664
Programación C/C++
BlackM4ster 1 2,617 Último mensaje 26 Julio 2012, 11:33 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines