我面临一个奇怪的问题。我有以下结构和使用该结构的方法。
struct AsyncData {
string documentNo;
string command;
string filePath;
};
UINT AsyncDownloader(LPVOID pData) {
AsyncData* ad = static_cast<AsyncData*>(pData);
string cmd = ad->command;
string path = ad->filePath;
HRESULT hr = URLDownloadToFile(NULL, cmd, path, 0, NULL );
if(SUCCEEDED(hr))
{
delete ad;
return 0;
}
else
{
string val = ad->documentNo;
return 1;
}
}
调用来自另一个方法:
callerMethod()
{
AsyncData* ad;
ad = new (AsyncData);
ad->filePath = filePath;
ad->command = command;
ad->documentNo = m_Target->SelectedDocNoList.GetString(i);
AfxBeginThread(AsyncDownloader, (LPVOID)ad);
}
问题是:
当AsyncDownloader
方法被调用时,发送和接收的结构地址是相同的。但是访问成员会给出NULL
值。
关于我做错了什么的任何见解?