Ciao a tutti,

allego una piccola porzione di codice C++ relativa alla creazione di un thread all'interno di una classe.

#define UNICODE
#define _UNICODE
#define _MT
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <process.h>
#include <iostream>
#include "stdafx.h"
using namespace std;

class ClientThread
{
public:
static unsigned __stdcall RunWrapper(void * );
void Run();

};

static unsigned __stdcall RunWrapper(void * pThis)
{
ClientThread * pthX = (ClientThread *)pThis;
pthX->Run();
return 1;
}

void ClientThread::Run()
{
cout << "Client thread is running..." << endl;
}

int _tmain(int argc, _TCHAR* argv[])
{

HANDLE tref;
DWORD dwID;
tref = (HANDLE)_beginthreadex(NULL, 0, ClientThread::RunWrapper, NULL, 0, NULL);
cout << "Client thread started..." << endl;
return(0);
}


Note:
- Il wrapping della funzione eseguita dal thread, come documentato in molti forum/tutorial (ad esempio http://www.codeproject.com/KB/threads/krunner.aspx) è necessario.
- La libreria LIBCMT.LIB è inclusa.

L'output della compilazione/linking è il seguente :

"error LNK2019: unresolved external symbol "public: static unsigned int __stdcall ClientThread::RunWrapper(void *)" (?RunWrapper@ClientThread@@SGIPAX@Z) referenced in function _wmain"

...qualche suggerimento?
grazie!