3

我面临一个奇怪的问题。我有以下结构和使用该结构的方法。

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值。

关于我做错了什么的任何见解?

4

0 回答 0