Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с СОМ 
:(
    Опции темы
bunt_pupsikov
Дата 16.7.2007, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 16.7.2007

Репутация: нет
Всего: нет



Добрый день! С СОМ столкнулась первый раз...


есть такая часть программы:


Код

double f2;

     f2 = nwa.GetGStop();      
     this->UpdateData(FALSE);
    
     m_KSV_1 = nwa.GetChValue(4, f2);     
     this->UpdateData(FALSE);    



где nwa - объект автоматизации..

далее есть еще вот такая часть:


Код


double IAutomation::GetGStop()
{
    double result;
    InvokeHelper(0x7, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL);
    return result;
}

double IAutomation::GetChValue(long Channel, double Frequency)
{
    double result;
    static BYTE parms[] =
        VTS_I4 VTS_R8;
    InvokeHelper(0x20, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, parms,
        Channel, Frequency);
    return result;
}


функция GetGStop() обрабатывается нормально и выдает правильный результат.
А вот функция GetChValue(long Channel, double Frequency) работать не хочет.... В процессе работы переменная result получает определенное значение, но оно не возвращается... Возникает какая-то ошибка..... Выдается сообщение "EAссess Violation", а когда при отлаживании закрываешь программу, выдается собщение "Unhandled exeption in Planar.exe (OLE32.DLL):0xC000005: Access Violatoin."

Проблемы возникают в этой функции
Код

double IAutomation::GetChValue(long Channel, double Frequency)
{    
double result;    
static BYTE parms[] =        
VTS_I4 VTS_R8;    
InvokeHelper(0x20, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, parms,        
Channel, Frequency);    
return result;
}


а конкретно  - при обработке исключения....
пишет сообщения про нарушение доступа к исключению и сбой при удаленном вызове процедуры....
в отладчике из строки InvokeHelper(.....) выкидывает в WINCORE.CPP в процедуру 

Код

LRESULT AFXAPI AfxCallWndProc(CWnd* pWnd, HWND hWnd, UINT nMsg,
    WPARAM wParam = 0, LPARAM lParam = 0)


конкретно в часть

Код

CATCH_ALL(e)
    {
    lResult = AfxGetThread()->ProcessWndProcException(e, &pThreadState->m_lastSentMsg);
        TRACE1("Warning: Uncaught exception in WindowProc (returning %ld).\n",
            lResult);
    DELETE_EXCEPTION(e);
    }
    END_CATCH_ALL


и на первой же строке lResult = ... отладчик подвисает....

Бьюсь над этим уже неделю.... 
Помогите, пожалуйста, разобраться что за ошибки и как их исправить...
Заранее спасибо...


Это сообщение отредактировал(а) bunt_pupsikov - 18.7.2007, 10:38
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0379 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.