Не работает OLE

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
falcon
партнер
Сообщения: 45
Зарегистрирован: Чт, 04/10/2007 09:27
Имя Фамилия: Александр Волков
Откуда: Фалькон плюс

Не работает OLE

Сообщение falcon »

Добрый день!
пробуем сделать работу со сканером штрих-кода

в Экселе все работает. Галактика вылетает по ошибке:
  • Exception: ExOle, ExOleBadCall
    Неизвестная ошибка при открытии объекта "ScCt.Cpt" в окне
    Описание:
    Access violation at address 00F33A50 in module 'AtlAx.dll'. Read of address 00000000
вот код интерфейса.

Код: Выделить всё


interface va_CHIPER 'Работа со сканером' ( , , sci1Esc), Cyan, alwaysreturn;
Show at (5,2,100,30);

var 
     Cpt : longint
     tsdCOMport: word;
     tsdConnect: word;

create view  ltVA
       as select * from Pick       ;


// ===========================================================================
//embedded emObj1 OLE;
//show at (,,,);
//end; 
// ===========================================================================

screen sc1
//       show at (,,,)
Fields
  tsdCOMport;
Buttons
  CmtsdConnect;
  CmCancel;
<<
   РАБОТА СО СКАНЕРОМ

   порт .@@@@@

  <. connect .>
  <. cancel  .>

>>
end;

// ===========================================================================

Handleevent
 cmInit:
 {

 };

 cmtsdConnect:
 {
   var M: string

   Cpt := OleCreate('ScCt.Cpt')

   if Cpt = 0 then exit;

   Message ( CPT ) ;

//   OleEmbed ( Cpt, emObj1);
//   OleSetOptions ( Cpt, 2);

   OleCall1( Cpt, ocPut,'Port',1)
   OleCall1( Cpt, ocPut,'BaudRate',1)
   OleCall1( Cpt, ocPut,'ConnectionType',0)

   message('end set');

   OleCall1( Cpt, ocFunc,'InitComm',0) 

//    If (   OleCall0( Cpt, ocProc,'InitComm')  <> 0) Then {
//        OleDestroy ( Cpt ) }
   
   OleCall1( Cpt, ocGet,'State',m)
   message ( m )
   OleCall1( Cpt, ocGet,'StateMessage',m)
   message ( m )


   OleCall1( Cpt, ocFunc,'CloseComm',0)
   OleDestroy ( Cpt )
   
 }

 cmClose:
 {

!   message('fff')
!   CloseInterface(cmOK);
!   Stop;
 }



 cmDone:
 {
 }

end; // HE

end.

OleCreate проходит успешно. но свойства установтиь не удается.
Вложения
методов.rar
пример в Эксель
(81.22 КБ) 525 скачиваний
CipherLAB.rar
библиотека
(113.64 КБ) 633 скачивания
OleCpt.rar
библиотека
(97.09 КБ) 580 скачиваний
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

А какое из 3х свойств не устанавливается?
falcon
партнер
Сообщения: 45
Зарегистрирован: Чт, 04/10/2007 09:27
Имя Фамилия: Александр Волков
Откуда: Фалькон плюс

Сообщение falcon »

Ни одно!
все что пытаюсь запустить после OleCreate() - не работает.

Выпадает по той же ошибке.
falcon
партнер
Сообщения: 45
Зарегистрирован: Чт, 04/10/2007 09:27
Имя Фамилия: Александр Волков
Откуда: Фалькон плюс

Сообщение falcon »

Так что делать то?
Аватара пользователя
Screw
топ-софт
Сообщения: 73
Зарегистрирован: Пт, 14/09/2007 22:54
Имя Фамилия: Виталий Корзюк
Откуда: ТопСофт
Контактная информация:

Сообщение Screw »

Объект оказался не совсем полноценным - не возвращает информации о типе (этим занимаются реализации IDispatch.GetTypeInfoCount и IDispatch.GetTypeInfo). Атлантис с такими объектами общаться не научен. Но починить можно.
Предлагаю обратиться в ТП и зарегистрировать инцидент и проблему.
Ответить