problems usando CreateThread en una función miembro

Estoy tratando de crear un hilo en un objeto, sin embargo, aparece un error que dice'&' : illegal operation on bound member function expression. Al leer, vi que tengo que hacer que la función miembro sea estática, pero cuando lo hago, aparece un error que diceleft of '.dac_ping' must have class/struct/union

esto es lo que estoy intentando:

class Dac 
    {
    private:
        network_com com;
        HANDLE  ping_thread;
        DWORD   dping_thread;

        static DWORD WINAPI ping_loop(void* param)
            {
            while ( com.dac_ping() == 0)
                Sleep(900);

            return 1; //since this is an infinite loop, if the loop breaks, it has failed
            }


    public:
        Dac()
            {
            }

        ~Dac()
            {
            }

        void find_dac()
            {
            com.find_dac();
            com.print_dac_info();
            }


        void connect_and_keep_alive()
            {
            if (com.dac_connect() == 0)
                ping_thread = CreateThread (NULL , 0, ping_loop, NULL, 0, &dping_thread);
            }

    };

Respuestas a la pregunta(1)

Su respuesta a la pregunta