C++ Передача структуры в функцию между потоками

У меня странная проблема. У меня есть ниже структура и метод, который использует структуру.

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 ценности.

Любое понимание того, что я делаю не так?

0 ответов

Другие вопросы по тегам