該代碼成功運行並且MQStruct構造函數也初始化了值,我可以在ExecuteThread函數中看到但在TestFunction中可以看到MQStruct的垃圾值。將結構對象作爲參數傳遞給線程
我傳遞結構「& MQStructObj」的地址_beginthreadex參數和這是問題我想
struct MQStruct {
MQStruct()
{
pointer=NULL;
serviceName=NULL;
durability=0;
msgType=0;
msgHeader=0;
msgId=NULL;
payload=NULL;
payloadSize=0;
ttl=0;
priority=0;
}
void* pointer;
wchar_t *serviceName;
int durability;
int msgType;
int msgHeader;
wchar_t *msgId;
wchar_t *payload;
int payloadSize;
int ttl;
int priority;
};
int ExecuteThread() {
HANDLE heartBeatThread;
unsigned int hbThreadID;
int result = 0;
MQStruct MQStructObj;
MQStructObj.pointer=this;
heartBeatThread = (HANDLE)_beginthreadex(NULL, 0 , &TestFunction, &MQStructObj, 0/*CREATE_SUSPENDED*/, &hbThreadID);
if (heartBeatThread == 0)
{
result = -1;
LogEvent(DEBUG_LOG,0, "Fail to create thread");
}
CloseHandle(heartBeatThread);
return result;
}
我編輯了自己的冠軍。請參閱[「應該在其標題中包含」標籤「?」](http://meta.stackexchange.com/questions/19190/),其中的共識是「不,他們不應該」。 – Default