Autor
|
Tema: [Duda] CallBack (Leído 5,315 veces)
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. Puedo redirigir un proceso por medio de funciones normales, pero lo que realmente quiero es redirrecionar a un miembro (una funcion) dentro de la clase, pero me marca error. Como se puede hacer un CallBack a un miembro( Funcion ) de una clase?. /* Con y sin & me marca error */ /* Intento cambiar el proceso que resive los mensajes de "this->v_hWinSock" a otro proceso/mienbro de una clase */ this->v_PrevProc = SetWindowLongA( this->v_hWinSock , GWL_WNDPROC, (DWORD)&this->WndProc);
Dulces Lunas!¡. .
|
|
« Última modificación: 15 Enero 2011, 01:56 am por BlackZeroX▓▓▒▒░░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
|
|
|
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
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. Es similar pero no me da solución, ya que no le puedo pasar cualquier cosa a este redirrecionamiento que busco es solo cambiar el CallWindowProc de una ventana creada con CreateWindowsEX. a un miembro (funcion) de una clase siendo la misma clase en su constructor cuando se creo la ventana y despues como ya dije redirrecionar los mensajes entrantes de esta ventana a el miembro de la funcion en cuention. CreateWindowEx + SetWindowLong + GWL_WNDPROC LONG WINAPI SetWindowLong( __in HWND hWnd, __in int nIndex, __in LONG dwNewLong );
Este es el proceso... que resive los mensajes. LRESULT CALLBACK cls_socket::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { ... Codigo }
P.D.: Usare una solucion cutre haber que tal me va. Dulces Lunas!¡. .
|
|
« Última modificación: 17 Enero 2011, 08:32 am por BlackZeroX▓▓▒▒░░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
No se puede usar un metodo comun, tiene que ser estatico por la convencion de llamada, CALLBACK es un alias de __stdcall y esta convencion no pasa el puntero this. Podrias GWL_USERDATA para escribir y leer el puntero al objeto ...
|
|
|
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
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. Esto ya esta solucionado con GWL_WNDPROC+GWL_USERDATA me las apañare perfectamente inclusive quitare ese feo vector con ese feo For.
Dulces Lunas!¡.
|
|
« Última modificación: 17 Enero 2011, 10:19 am por BlackZeroX▓▓▒▒░░ »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
De nada.
|
|
|
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
|
|
|
ThunderCls
Desconectado
Mensajes: 455
Coder | Reverser | Gamer
|
. Esto ya esta solucionado con GWL_WNDPROC+GWL_USERDATA me las apañare perfectamente inclusive quitare ese feo vector con ese feo For.
Dulces Lunas!¡.
Hola BlackZeroX▓▓▒▒░░, hace un tiempo tuve el mismo problema y busque en cada rincon y en cada foro que pude, pero las soluciones que encontre no me sirvieron, al final deje a un lado lo que intentaba hacer por si me surgia alguna solucion. Por lo que leo, al final sabes como lograrlo. Podias exponer el metodo que usastes en algo de codigo y asi ver si asi saco esta espina que tengo Saludos y gracias de antemano
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
¿Te referis a esto? https://foro.elhacker.net/programacion_cc/c_ayuda_con_esta_clase-t311243.0.htmlLa solucion es la misma que te dieron en ese hilo, si queres usar la clase entonces el metodo tiene que ser estatico (como dije en este mismo hilo para pasar el puntero this podes usar GWL_USERDATA). Lee todo con atencion, incluidos los enlaces e hilos relacionados.
|
|
|
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
|
|
|
ThunderCls
Desconectado
Mensajes: 455
Coder | Reverser | Gamer
|
Eternal Idol, recuerdo haber leido la respuesta de Littlehorse, pero al final me parece que no pude lograr hacerlo como queria, igual deberia seguir intentandolo y leyendo, aunque bueno...un pedacito de codigo sencillo como el ejemplo que puse en ese hilo, pero funcional, no me vendria mal, por eso le pedi algun ejemplo a BlackZeroX▓▓▒▒░░ que al parecer lo consiguio en su codigo. De todas formas gracias por responder Saludos
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
En los enlaces hay varios ejemplos. Lo unico que tenes que hacer es declarar el metodo como estatico, llamar a Set/GetWindowLong con GWL_USERDATA y hacer algun casting.
|
|
|
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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Process32next Callback
Programación Visual Basic
|
ntaryl
|
4
|
2,380
|
24 Septiembre 2008, 05:58 am
por ssccaann43 ©
|
|
|
TLS Callback
Programación C/C++
|
ThunderCls
|
0
|
2,127
|
9 Mayo 2011, 22:18 pm
por ThunderCls
|
|
|
Funciones callback?
Programación C/C++
|
roilivethelife
|
1
|
3,176
|
20 Agosto 2012, 17:41 pm
por rir3760
|
|
|
Rutina de desencriptación con TLS Callback
Análisis y Diseño de Malware
|
Binary_Death
|
5
|
3,542
|
1 Septiembre 2013, 06:13 am
por Binary_Death
|
|
|
Refresco tkinter de texto recibido en un callback
Scripting
|
minak
|
1
|
2,003
|
11 Mayo 2018, 13:48 pm
por minak
|
|