I want to use _beginthreadex and pass a character string, the name of a domain. What is the proper way/best practice to pass it?
- By variable itself (sDomain)?
WCHAR sDomain[256] = {0};
//...copy domain into sDomain
UINT threadID = 0;
HANDLE hThread = (HANDLE)_beginthreadex(NULL, 0, &Thread_SaveDomainName, sDomain, 0, &threadID);
- Or by the address of the variable (&sDomain)?
WCHAR sDomain[256] = {0};
//...copy domain into sDomain
UINT threadID = 0;
HANDLE hThread = (HANDLE)_beginthreadex(NULL, 0, &Thread_SaveDomainName, &sDomain, 0, &threadID);
- Or do I make a struct and pass the struct element (&sDomain[0])?
struct strDomain {TCHAR sDomain[256];};
strDomain *sDomain = new strDomain[1]();
//...copy domain into strDomain[0].sDomain
UINT threadID = 0;
HANDLE hThread = (HANDLE)_beginthreadex(NULL, 0, &Thread_SaveDomainName, &sDomain[0], 0, &threadID);