Raised exception class eolesyserror with message ошибка

0 / 0 / 0

Регистрация: 07.05.2015

Сообщений: 73

1

18.02.2019, 11:01. Показов 2625. Ответов 5


Студворк — интернет-сервис помощи студентам

Здравствуйте !
Подскажите, в чём дело?
При выполнении программной строки: Controller := CreateOleObject(‘Controller.ScAuto’);
появляется сообщение: Project Vesy raised exception class EOleSysError with message
» Недопустимая строка с указанием класса «.
Process stopped . Use Step or Run to continue.

В Uses ComObj есть, Controller объявлен как Variant, пробовал объявлять и как OleVariant ничего не помогает.
Я смотрел примеры с использованием CreateOleObject разницы не нашёл.
При компиляции ошибок нет, только при выполнении.



0



5538 / 4323 / 1383

Регистрация: 14.04.2014

Сообщений: 19,386

Записей в блоге: 19

18.02.2019, 14:24

2

а Controller.ScAuto — точно есть такой COM-объект у вас?
ОС не может ошибаться) не нашла она такой класс



0



0 / 0 / 0

Регистрация: 07.05.2015

Сообщений: 73

18.02.2019, 15:42

 [ТС]

3

krapotkin :
Controller.ScAuto — это прибор, который соединен с компьютером кабелем по RS-485.
При запуске программы он должен быть подключен к компьютеру (включен) ?
Я думал, что прибор нужен только, когда будет считываться с него информация
с помощью другой команды, а это просто создание виртуального объекта в памяти.
Я ошибаюсь ?



0



5538 / 4323 / 1383

Регистрация: 14.04.2014

Сообщений: 19,386

Записей в блоге: 19

19.02.2019, 09:55

4

программе в целом все равно, включен ваш прибор или нет
программа вызывает духов операционной системы, в которой драйвер вашего прибора зарегистрирован как COM-объект
система шарит по списку зарегистрированных COM и ищет его по указанному имени
если находит, инициализирует его и отдает вам, если нет — пишет ошибку
судя по сообщению, драйвер с таким именем она не нашла



0



Nanotentacle

19.02.2019, 10:36

Не по теме:

Есть подозрение, что возникла путаница между понятиями COM-объект и COM-порт…



0



5538 / 4323 / 1383

Регистрация: 14.04.2014

Сообщений: 19,386

Записей в блоге: 19

19.02.2019, 11:13

6

нее, тут явно просто не установлен драйвер



0



** Алексей

Отправлено: 20.03.2006, 19:02

Не зарегистрирован

Здравствуйте.
Помогите справиться.

В программе надо открыть EXCEL:

Variant App,Sh;
String file_n=»c:\12.xls»;
try {
App=Variant::GetActiveObject(«Excel.Application»);
} catch(…) {
// запустить Excel
try { App=Variant::CreateObject(«Excel.Application»); } catch (…) {
Application->MessageBox(«Невозможно открыть Excel!»
«Excel не установлен»,»Ошибка»,MB_OK+MB_ICONERROR);
} }
try {
if(file_n!=»»)
App.OlePropertyGet(«WorkBooks»).OleProcedure(«Open»,file_n);
else
App.OlePropertyGet(«WorkBooks»).OleProcedure(«add»);
Sh=App.OlePropertyGet(«WorkSheets»,1);
} catch(…) {
Application->MessageBox(«Не открывается книга Microsoft Excel!»,
«Ошибка»,MB_OK+MB_ICONERROR);
}

…………………
Sh.Clear();
App.Clear();

Выдается ошибка:
Project xxx.exe raised exception class EOleSysError with message
«Неверный тип переменной»

Похоже на строке:

App.OlePropertyGet(«WorkBooks»).OleProcedure(«Open»,file_n);

Сам EXCEL загружается (видно по Ctr-Alt-Del)

Что неправильно?

Aptem

Отправлено: 21.03.2006, 05:28

Мастер участка

Группа: Участник
Сообщений: 349

Вот так точно работает:

CODE
Variant App, Sheet;
App = CreateOleObject ( «Excel.Application» );
App.OlePropertyGet ( «WorkBooks» ).OleProcedure ( «Open», Edit1 -> Text.c_str () );
Sheet = App.OlePropertyGet ( «WorkSheets», 1 );


и помоему еще нужно подключить какую-то из этих бибилиотек:

CODE
#include <OleServer.hpp>
#include <OleCtrls.hpp>


Если что-то не заработает, то пишите, обязательно разберемся. Я с Excel уже собаку съел smile.gif

** Алексей

Отправлено: 22.03.2006, 19:22

Не зарегистрирован

Aptem! Спасибо. Так работает.
smile.gif

 
Belkova
 
(2003-06-24 13:47)
[0]

Мастера Delphi! Подскажите пожалуйста , что означает эта ошибка

Projet Project1.exe raised class EOleSysError with message «Операция недоступна»

ругается на

try

try

V:=GetActiveOleObject(«Excel.Application»);

except

V:=CreateOleObject(«Excel.Application»);

end;

except

raise Exception.Create(«Ошибка создания объекта Excel»);

end;

Появляется при запуске приложения из Delphi, выполняю снова F9 дальше работает нормально.

При запуске Project1.exe из WinCom ошибки нет. Что делать? Заранее благодарна!


 
Palladin
 
(2003-06-24 13:51)
[1]

А что не порусски написано…


 
TsvIlya
 
(2003-06-24 14:55)
[2]

Из-под Delphi показываются ВСЕ исключительные ситуации, даже которые находятся в блоке try … except … end;. У тебя происходит ошибка «Projet Project1.exe raised class EOleSysError with message «Операция недоступна»» в строке



V:=GetActiveOleObject("Excel.Application");



и Delphi тебе о ней сообщает, а из-под WinCom-а она пропускается из-за try … except.


 
sniknik
 
(2003-06-24 15:06)
[3]

а запусти Excel до запуска приложения из Delphi, и произойдет маленькое чудо, ошибки не будет. :о))

прямой пример вреда копирования чужого кода к себе в программы, без «осмысления».


 
Belkova
 
(2003-06-24 15:45)
[4]

Всем спасибо.


 
Orpheus
 
(2003-06-24 16:24)
[5]

В дополннеие к TsvIlya:

можно отключить перехват исключений дельфой

Tools-Environment options-preferences-Break on exception

но наверное не стоит


The class that the function

PlexApp.Function_(ImpNme, FleNme).Call(VarArrayRef(Input),VarArrayRef(Output));

references is not regsitered as a COM object.  Since the code is a bit different you will need to inspect it.  I suspect the

Call(VarArrayRef(Input),  VarArrayRef(Output))

section is calling a COM object by reference.  If this is not the case then the

PlexApp.Function_

is referring to an unregistered COM object.  You will need to either
  1) Install the AllFusionPlex on the system or
  2) Register it as a DCOM object residing on a different system.

Either way this should clear up the error.  If the AllFusionPlex software has a good install program then it should help you with either option.

Let me know.

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    [!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь

    >
    Ошибка при использовании OlePropertyGet(«Documents»).OleProcedure(«Add»)

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    21.06.08, 20:41

      Junior

      *

      Рейтинг (т): нет

      При использовании следующего кода:

      ExpandedWrap disabled

        Word = CreateOleObject(«Word.Application.8»);

        Word.OlePropertySet(«Visible», true);

        Word.OlePropertyGet(«Documents»).OleProcedure(«Add»);

      на компьютере с Microsoft Word Standart Edition 2003 for Students and Teachers появляется сообщение об ошибке: Project Project1.exe raised exception class EOleSysError with message ‘Exception ocurred’. Process stopped. Use Step or Run to continue. На компьютерах с другими версиями Microsoft Word ошибки не возникает.

      В чем может быть причина и как можно ее устранить без переустановки Microsoft Word?


      artalex



      Сообщ.
      #2

      ,
      21.06.08, 21:05

        AleksP
        на какой строчке исключение возникает?


        AleksP



        Сообщ.
        #3

        ,
        21.06.08, 21:29

          Junior

          *

          Рейтинг (т): нет

          To artalex: На строке Word.OlePropertyGet(«Documents»).OleProcedure(«Add»).


          trainer



          Сообщ.
          #4

          ,
          22.06.08, 06:27

            Скорее всего не получается получить свойство «Documents»
            Разбей выражение на более простые и посмотри.


            AleksP



            Сообщ.
            #5

            ,
            22.06.08, 08:57

              Junior

              *

              Рейтинг (т): нет

              Добавил код:

              ExpandedWrap disabled

                Documents = Word.OlePropertyGet(«Documents»);

                Documents.OleProcedure(«Add»);

              Ошибка появляется на строке Documents.OleProcedure(«Add»).


              trainer



              Сообщ.
              #6

              ,
              22.06.08, 09:09

                Значит нет такого свойства «Documents». Проверь содержимое переменной Documents перед вызовом Add
                Возможно оно как-то иначе называется.


                AleksP



                Сообщ.
                #7

                ,
                22.06.08, 12:36

                  Junior

                  *

                  Рейтинг (т): нет

                  А как это сделать? Попробовал код:

                  ExpandedWrap disabled

                    for (int i=0; i <= Documents->Properties->Count-1; i++)

                    Memo1->Lines->Add(Documents->Properties->Item[i]->Value);

                  но появляется сообщение об ошибке: Pointer to structure required on left side of -> or ->*.


                  trainer



                  Сообщ.
                  #8

                  ,
                  22.06.08, 12:46

                    Просто посмотри, какой тип у значения Documents. Метод Type. Если коллекция получена, то должно быть по идее varDispatch(число 9).


                    AleksP



                    Сообщ.
                    #9

                    ,
                    22.06.08, 19:00

                      Junior

                      *

                      Рейтинг (т): нет

                      To trainer: А как это правильно сделать? Пробую так:

                      ExpandedWrap disabled

                        Memo1->Lines->Add(Word.OlePropertyGet(«Documents»).OlePropertyGet(«Type»));

                      появляется сообщение об ошибке: Project Project1.exe raised exception class EOleSysError with message ‘Unknown name’. Process stopped. Use Step or Run to continue.


                      trainer



                      Сообщ.
                      #10

                      ,
                      23.06.08, 04:15

                        Memo1->Lines->Add(Word.OlePropertyGet(«Documents»).Type());


                        AleksP



                        Сообщ.
                        #11

                        ,
                        23.06.08, 11:50

                          Junior

                          *

                          Рейтинг (т): нет

                          To trainer: Да, именно 9. А что дальше делать?


                          trainer



                          Сообщ.
                          #12

                          ,
                          23.06.08, 12:57

                            Хммм… т.е. коллекция Documents получается. Непонятно.
                            А значение не NULL?


                            artalex



                            Сообщ.
                            #13

                            ,
                            23.06.08, 13:06

                              возможно нужно какой-нибудь параметр передать Add()
                              запиши макрос и посмотри как Add() вызывается


                              AleksP



                              Сообщ.
                              #14

                              ,
                              23.06.08, 18:02

                                Junior

                                *

                                Рейтинг (т): нет

                                Код макроса:

                                ExpandedWrap disabled

                                  Sub Macro()

                                  ‘ Macro Macro

                                  ‘ Macro recorded 6/23/2008 by

                                    Documents.Add Template:=»Normal», NewTemplate:=False, DocumentType:=0

                                  End Sub


                                artalex



                                Сообщ.
                                #15

                                ,
                                23.06.08, 18:59

                                  а если так

                                  ExpandedWrap disabled

                                    Function OleAdd( «Add» );

                                    NamedParm Template( «Template», «Normal» );

                                    NamedParm NewTemplate( «NewTemplate», false );

                                    NamedParm DocumentType( «DocumentType», 0 );

                                    OleAdd << Template << NewTemplate << DocumentType;

                                    Documents = Word.OlePropertyGet(«Documents»);

                                    Documents.Exec( OleAdd );

                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                                  0 пользователей:

                                  • Предыдущая тема
                                  • Borland C++ Builder/Turbo C++ Explorer
                                  • Следующая тема

                                  Рейтинг@Mail.ru

                                  [ Script execution time: 0,0613 ]   [ 16 queries used ]   [ Generated: 9.06.23, 02:09 GMT ]  

                                  Возможно, вам также будет интересно:

                                • Rainbow six siege ошибка подбора игроков 2 0x0000d013
                                • Rainbow six siege ошибка запуска
                                • Rainbow six siege ошибка 4 0xfff0be2b
                                • Rainbow six siege ошибка 0 0x00000001
                                • Rainbow six siege код ошибки 3 0x00040002

                                • Понравилась статья? Поделить с друзьями:
                                  0 0 голоса
                                  Рейтинг статьи
                                  Подписаться
                                  Уведомить о
                                  guest

                                  0 комментариев
                                  Старые
                                  Новые Популярные
                                  Межтекстовые Отзывы
                                  Посмотреть все комментарии