_beginthread в ошибке компонента XPCOM C2440

Я хочу запустить поток в компоненте XPCOM. Вот код для создания потока

nsresult rv = NS_OK;
    nsCOMPtr<Callback> obj = do_CreateInstance("@jscallback.p2psearch.com/f2f;1", &rv);
    NS_ENSURE_SUCCESS(rv, rv);
    char* str="Hello from C++";
    _beginthread( (void(*)(nsCOMPtr<Callback> ))&P2P::test, 0,obj);

    return NS_OK;//obj->Status(str);

Вот функция

#include "winsock2.h"
#include <process.h>
#include "nsCOMPtr.h"
#include "Callback.h"
class P2P{
public:
    void test(nsCOMPtr<Callback> obj){

}

};

Я получаю ошибку как

ошибка C2440: «приведение типа»: невозможно преобразовать из «void (__thiscall P2P::*) (nsCOMPtr)» в «void (__cdecl *) (nsCOMPtr)»


person Xinus    schedule 01.10.2009    source источник


Ответы (1)


Сделайте P2P::test статическим и добавьте соглашение о вызовах __cdecl.

person Cristian Adam    schedule 01.10.2009