Гуиды анси-плагинов

Хотите говорить о Far и не знаете, куда обратиться?
Smitis
Posts: 1596
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 38 times

Гуиды анси-плагинов

Post by Smitis » Wed 15 May, 2013 10:23

Это нормально, что для ansi плагинов guid-ы генерируются вида 00000000-0000-0000-4368-617261637465 (т.е. в начале всегда нули), причём гуид не меняется после /clearcache? Раньше случайным образом генерировались.

П.С. Это, типа, имя плагина в хексе?
Разум когда-нибудь победит.

User avatar
John Doe
Бюрократ
Posts: 12527
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 234 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by John Doe » Wed 15 May, 2013 10:29

У меня такого нет.

Гуиды постоянными должны стать у FTP и Multiarc, но это только если свежие с плагринга поставить.

User avatar
t-rex
Страшный и ужасный
Posts: 4903
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 3 times
Contact:

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by t-rex » Wed 15 May, 2013 10:33

Smitis wrote:Это нормально, что для ansi плагинов guid-ы генерируются вида 00000000-0000-0000-4368-617261637465 (т.е. в начале всегда нули), причём гуид не меняется после /clearcache? Раньше случайным образом генерировались.

П.С. Это, типа, имя плагина в хексе?
Да, это было недавно сделано.

User avatar
John Doe
Бюрократ
Posts: 12527
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 234 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by John Doe » Wed 15 May, 2013 10:41

Действительно, после чистки кэша так и есть, а до этого гуиды тоже были постоянными, но брались из кэша, без нулей

2useven10
Posts: 3982
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 173 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 » Wed 15 May, 2013 11:03

для анси плагинов теперь можно задать 'правильный' гуид в ресурсах - versioninfo PluginGUID (это сделано для multiarc и farftp). в противном случае: {8x00, первые 8 байт имени плагина} (тоже из versioninfo - InternalName/OriginalName).

User avatar
John Doe
Бюрократ
Posts: 12527
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 234 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by John Doe » Wed 15 May, 2013 11:05

При таком подходе вероятны накладки

User avatar
DrKnS
Posts: 5426
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 250 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by DrKnS » Wed 15 May, 2013 11:15

  1. Info->Title = PointToName(module);
  2.  
  3. int nb = std::min((int)wcslen(Info->Title), 8);
  4. while (nb > 0) {
  5.     --nb;
  6.     ((char *)&Info->Guid)[8+nb] = (char)Info->Title[nb];
  7. }
Эээ, т. е. для двух разных ansi-плагинов %farhome%\plugins\project1\plugin.dll и %farhome%\plugins\project2\plugin.dll, не содержащих versioninfo, эта магия даст одинаковый UID, я правильно понимаю?

2useven10
Posts: 3982
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 173 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 » Wed 15 May, 2013 11:22

да. а есть такие плагины? в смысле используются в тройке?

User avatar
DrKnS
Posts: 5426
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 250 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by DrKnS » Wed 15 May, 2013 11:28

Ну никто не мешает их написать, т. к. у нас нигде в первописании не указано, что dll обязана иметь уникальное имя и/или versioninfo.

User avatar
t-rex
Страшный и ужасный
Posts: 4903
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 3 times
Contact:

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by t-rex » Wed 15 May, 2013 11:36

Ну я потому оригинально предлогал хэш полного пути. Но в реальности вряд ли будут два одинаковых длл для анси плагина.

User avatar
DrKnS
Posts: 5426
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 250 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by DrKnS » Wed 15 May, 2013 11:38

Полный путь у всех разный, т. е. это те же яйца, что и UuidCreate, только сбоку.

User avatar
John Doe
Бюрократ
Posts: 12527
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 234 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by John Doe » Wed 15 May, 2013 11:45

Время компиляции вроде уникально?

2useven10
Posts: 3982
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 173 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 » Wed 15 May, 2013 11:49

Конфликты для анси плагинов возможны. Но их можно разрешить даже простым переименованием длл.
Имхо этого достаточно и биться здесь за обеспечение полной уникальности и однозначности совершенно нет смысла.
При желании можно даже без сорсов добавить-пропатчить versioninfo прямо в длл.

2useven10
Posts: 3982
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 173 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 » Wed 15 May, 2013 11:50

Время компиляции вроде уникально?
во первых нет. во вторых при перекомпиляции гуид уедет.

User avatar
John Doe
Бюрократ
Posts: 12527
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 234 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by John Doe » Wed 15 May, 2013 11:52

Вообще-то при перекомпиляции можно и гуид добавить.
Да и речь в основном о неподдерживаемых древних плагинах.
Переименовать dll это конечно выход, но это компрометирует саму суть гуидов

Shmuel
Posts: 5919
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by Shmuel » Wed 15 May, 2013 11:56

Выкинуть враппер: упрощается Фар, повышается его надёжность.

Post Reply

Return to “Обсуждение Far Manager”