Programación WindowsSDK
Problemas con funciones miembro
El uso de funciones miembro de C++ como funciones de devolución de llamada provocará errores porque las funciones miembro de C++ tienen implícitamente un puntero "esto". Esta es la razón por la que varias instancias de clases de C++ pueden disfrutar de funciones miembro pero no de los mismos miembros de datos.
Método 1: Utilice funciones C ordinarias.
A través del operador amigo, las funciones C pueden acceder fácilmente a las variables miembro de la clase. Este mecanismo de procesamiento es exactamente el mismo que la función de devolución de llamada utilizada en la programación en C.
Método 2: Pruebe funciones miembro estáticas.
Las funciones miembro estáticas no dependen del puntero "este" y, por lo tanto, pueden usarse como funciones de devolución de llamada. Aunque solo puede acceder a funciones y variables miembro estáticas, solo necesita un puntero de clase estática para permitir que la función de devolución de llamada acceda a todas las variables y funciones miembro. Este método es particularmente útil cuando solo hay una instancia de una clase.