Может ли CLSID отличаться для одной и той же программы, установленной на двух разных компьютерах? - PullRequest
0 голосов
/ 15 марта 2010

Я использую comtypes для генерации оболочек для определенной библиотеки com.У меня есть определенные проблемы с несколькими вещами, которые не генерируются должным образом.Я могу обойти это, выполнив недостающую работу, вручную.Однако могу ли я зависеть от того, что CLSID не изменится?

Допустим,

Я устанавливаю программу с библиотекой com Foo 1.0, теперь я устанавливаю точно такую ​​же версию этой программыдругой компьютер, изменится ли CLSID интерфейсов?

Это может быть ужасно тупой вопрос.

Ответы [ 2 ]

1 голос
/ 15 марта 2010

Отказ от ответственности: сделано много COM, но никогда не с Python.

UUID для интерфейса COM является частью определения интерфейса. Оно должно быть одинаковым на каждой машине и на все времена.

Кроме того, в земле ATL COM классы имеют CLSID, а интерфейсы - IID. Оба имеют UUID (или, возможно, GUID). Не уверен насчет питона.

1 голос
/ 15 марта 2010

CLSID, по крайней мере, не должен меняться. Естественно, программа может сделать много глупостей, нарушающих правила. Но: поскольку CLSID - это то, как класс загружается, измененный CLSID будет означать, что программа USING класса также должна будет использовать измененный CLSID.

Су, ваше предположение правильно - если одна и та же программа в одной и той же версии установлена ​​на двух компьютерах, можно с уверенностью предположить, что CLSID не меняется.

Это даже должно происходить между версиями .... но если библиотека Foo 1.0 используется только одной программой, программист может избежать неприятностей с измененным CLSID. Это не должно измениться, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...