jeudi 2 juillet 2015

Combining STL(c++11) with WinAPI

Im trying to start a new thread using CreateThread and pass the pointee of a shared_pointer as an argument. If i was to use good old ATL, it would call Ccomptr's operator () and increase the ref count and eventually retrieve the pointer.

I'm trying to do the same using STL's shared_ptr, but I'm getting an error where conversion between std::shared_ptr to LPVOID doesn't exist.

        std::shared_ptr<X> m_pSettings = std::make_shared(new ....);
        if (nullptr == (m_hBackgroundThread = ::CreateThread(
            nullptr,                // default security attributes
            0,                      // use default stack size  
            ThreadProc,             // thread function name
            m_pSettings,            // argument to thread function 
            0,                      // use default creation flags 
            0)))
        {
            LOG_ERROR(L"Failed to create thread");
            return false;
        }

Aucun commentaire:

Enregistrer un commentaire