Перейти к содержанию
    

DxDesigner под Windows может "убить себя" при первом же запуске.

1 hour ago, PBO said:

Может это там Siemens медленно убивает Mentor )))

Раз пошла такая пьянка... Придется, наверное, реабилитировать ментора, сименса и вьюлоджик. Частично - за непреднамеренное самоубийство :) :)

 

Это происходит не непосредственно в их коде -  за убийство отвечает вызов метода класса MFC COleObjectFactory::UpdateRegistry, которое происходит где-то при самой начальной инициализации приложения (viewdraw.exe). Что там внутри (в MFC) происходит - эта ф-ция пытается зарегистрировать COM-сервер, у неё случается облом с записью в раздел CLSID (там свои права доступа), и из-за этого она пытается стереть и CLSID, и ProgID, типа, не записалось, так грохнем всё. С первым обламывается еще раз, а второй успешно грохает.  А глубже копать я пас :) :) Это совсем не моя епархия, все эти COM/OLE, там и с  поллитрой-то не разберешься, да и с литром не факт что.

 

По крайней мере, это уже явно не преднамеренно сделано. Это, видимо, некий атавизм, когда сам viewdraw регистрировал свои COM-серверы каждый раз при запуске (сейчас это делает инсталлятор), и когда там не было разграничения прав доступа и в помине (как я и предполагал, видимо остатки от windows 3.1 / 95). А теперь "оно там само сдохло" из-за отсутствия прав доступа в реестр, и не мешает в большинстве случаев :) :).

 

PS. Если это интересно "ИМ ТАМ", то можно так и передать - что вызовы COleObjectFactory::UpdateRegistry из viewdraw.exe при определенных правах доступа к кусту HKCR реестра и ключу CLSID в нем (в первый доступ на запись есть, а во второй - нет) приводят к стиранию информации в них о классах, связанных с DxDesigner.

В моём представлении эти "регистрационные действия" в viewdaw.exe - атавизм, давно перенесенный в инсталлятор. А уж что там на самом деле, дажё чёрту вряд ли известно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, SM said:

PS. Если это интересно "ИМ ТАМ", то можно так и передать - что вызовы COleObjectFactory::UpdateRegistry из viewdraw.exe при определенных правах доступа к кусту HKCR реестра и ключу CLSID в нем (в первый доступ на запись есть, а во второй - нет) приводят к стиранию информации в них о классах, связанных с DxDesigner.

Никто «там» на это время тратить не будет, потому что жалоб на это нет официальных. 
да и встречается крайне редко. 
то есть трудозатраты на фикс несоизмеримы с его пользой 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...