1. Мегаконкурс в апреле "Приведи друзей на codeby". Дарим деньги, подписку на журнал хакер и выдаем статус "Paid Access". Подробнее ...

    Скрыть объявление

Проблемы Com & Multithreading

Тема в разделе "MS Visual C++", создана пользователем -=Bright=-, 21 ноя 2006.

Наш партнер Genesis Hackspace
Статус темы:
Закрыта.
  1. -=Bright=-

    -=Bright=- Гость

    Здравствуйте!
    У меня следующая проблема: не могу подключиться к COM-серверу, если использую многопоточность.
    Упрощенно структура программы имеет такой вид:
    class CTerminalApp : public CWinApp
    {
    private:
    CForexServer server; // COM-сервер
    }

    Подключаемся к серверу:
    void CTerminalApp::OnLogindlg()
    {
    bool bSuccess=false;
    CLSID clsid;
    if (SUCCEEDED (CLSIDFromProgID (OLESTR ("ForexServer.Application"), &clsid)))
    {
    IUnknown* pUnknown;
    if (SUCCEEDED :):GetActiveObject(clsid, NULL, &pUnknown)))
    {
    IDispatch* pDispatch;
    if (SUCCEEDED (pUnknown->QueryInterface (IID_IDispatch, (void**) &pDispatch)))
    {
    pDispatch->Release();
    server.AttachDispatch(pDispatch);
    bSuccess=true;
    }
    }
    }

    if (!bSuccess)
    if (!server.CreateDispatch(_T ("ForexServer.Application")))
    {
    MessageBox(m_pMainWnd->m_hWnd,"Could not connect to the server! Please check connection and try again.","ERROR",MB_OK);
    return;
    }
    }

    По таймеру,запускаем новый поток, чтобы забрать с сервера новые данные:
    void CALLBACK EXPORT TimerProc(HWND hWnd, UINT nMsg, UINT nIDEvent, DWORD dwTime)
    {
    theApp.GetCurrentPrices();
    AfxBeginThread(CurrentPrices,&theApp);

    return;
    }

    UINT CurrentPrices(LPVOID pParam)
    {
    CTerminalApp *serv=(CTerminalApp*) pParam;
    serv->GetCurrentPrices();
    return 0;
    }

    При попытке выполнения метода CForexServer::GetCurrentPrices() программа выдает ошибку, даже если внутри самой функции CurrentPrices попытаться заново подключиться к серверу.
    Помогите пожалуйста кто знает в чем проблема!
    Заранее благодарен!
     
Загрузка...
Похожие Темы - Проблемы Com Multithreading
  1. nikos
    Ответов:
    29
    Просмотров:
    337
  2. lmike
    Ответов:
    18
    Просмотров:
    245
  3. VikTor1990
    Ответов:
    0
    Просмотров:
    70
  4. hitesh
    Ответов:
    6
    Просмотров:
    152
  5. Hackerelite
    Ответов:
    24
    Просмотров:
    553
Статус темы:
Закрыта.

Поделиться этой страницей