ver_c0 - отображение версий файлов в колонке C0

Место, где разработчики плагинов могут поделиться своим опытом.
Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

ver_c0 - отображение версий файлов в колонке C0

Post by Maximus5 » Sun 13 Jun, 2010 02:38

Отображение версии *.exe и *.dll в колонке C0. Только FAR2 1588.

Code: Select all

╔═ F:\...ugin\Col0host\ver_c0 ═14:27
║n     Name      │                 ║
║..              │                 ║
║far.exe         │[x32] 2.0.0.1591 ║
║ver_c0.dll      │[x32]            ║
║ver_c0_x64.dll  │[x64]            ║
Скачать

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: ver_c0

Post by Maximus5 » Sun 13 Jun, 2010 14:37

Оптимизировано

Игорь Юдинцев
Posts: 725
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 1 time

Re: ver_c0

Post by Игорь Юдинцев » Sun 13 Jun, 2010 14:47

течёт память, лочатся файлы с VERSION_INFO.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: ver_c0

Post by Maximus5 » Sun 13 Jun, 2010 14:59

исправил

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: ver_c0

Post by Maximus5 » Mon 14 Jun, 2010 12:20

пересобрано в VC, добален бинарник для x64
(собранный в gcc валился на 64битных dll)

User avatar
zg
zero-gravity
Posts: 5312
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

Re: ver_c0

Post by zg » Mon 14 Jun, 2010 12:23

Maximus5 wrote:пересобрано в VC, добален бинарник для x64
(собранный в gcc валился на 64битных dll)
вот он гуманитарный подход во всей красе :(

User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 18 times
Been thanked: 1 time

Re: ver_c0

Post by Kerberos464 » Mon 14 Jun, 2010 12:31

скажите, а этим плагином уже можно пользоваться "обычным фароюзерам"?
если да, то где можно найти эту колонку C0?
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: ver_c0

Post by Maximus5 » Mon 14 Jun, 2010 12:32

Да, ты знаешь, почему-то проще (или быстрее) выложить рабочую сборку, чем разбираться в глюках gcc.
Наверное ты делаешь по другому?

Может в gcc какие-то хидеры неправильные, это я буду разбираться. А пока буду - люди уже смогут пользоваться не падающей версией.

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

User avatar
zg
zero-gravity
Posts: 5312
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

Re: ver_c0

Post by zg » Mon 14 Jun, 2010 12:48

Maximus5 wrote:Да, ты знаешь, почему-то проще (или быстрее) выложить рабочую сборку, чем разбираться в глюках gcc.
спешить увеличивать энтропию вселенной, это конечно очень важно.
Наверное ты делаешь по другому?
да.
Может в gcc какие-то хидеры неправильные, это я буду разбираться.
может. а может у тебя в коде баг. и сборка другим компилятором просто маскирует его?
Если ты это называешь гуманитарным подходом - то я скорее гуманным.
я называю этот подход несколько иначе. «гуманитарный» — гуманное обозначение для этого форума.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: ver_c0

Post by Maximus5 » Mon 14 Jun, 2010 16:31

вежливо облить грязью - у некоторых это хорошо получается, да...

Вот объясни мне, как крупный специалист гуманитарию. Почему вот эта программа, собранная для x86,

Code: Select all

#include <windows.h>
#include <stdio.h>
int __cdecl main()
{
	printf("sizeof(IMAGE_NT_HEADERS64)=%i\n", sizeof(IMAGE_NT_HEADERS64));
	printf("sizeof(IMAGE_FILE_HEADER)=%i\n", sizeof(IMAGE_FILE_HEADER));
	printf("sizeof(IMAGE_OPTIONAL_HEADER64)=%i\n", sizeof(IMAGE_OPTIONAL_HEADER64));
	return 0;
}
выдает различные при сборке разными компиляторами?

Ошибку в коде я в упор не вижу. Допускаю, что я не умею мейки для gcc делать, но сомневаюсь, что дело в нем.
Attachments
test64.7z
исходник, мейки, бинарники
(26.21 KiB) Downloaded 216 times

Shmuel
Posts: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

Re: ver_c0

Post by Shmuel » Mon 14 Jun, 2010 18:20

Maximus5 wrote:Почему вот эта программа, собранная для x86,
[...]
выдает различные результаты
Потому что это - плохая программа. Для функций семейства printf компилятор не обязан проверять (и чаще всего - не проверяет) соответствие типов между шаблонами и аргументами - это ответственность программиста. Не проверяется и соответствие числа шаблонов числу аргументов.

Например, нижеследующий вызов может просто завалить программу:

Code: Select all

printf("%i %i %i %i", 5);

User avatar
HaRT
Moderator
Posts: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 68 times
Been thanked: 106 times

Re: ver_c0

Post by HaRT » Mon 14 Jun, 2010 18:34

Shmuel wrote:Потому что это - плохая программа. Для функций семейства printf компилятор не обязан
То, что Вы пишете про printf, правда; то, что про эту программку — нет.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Andrey Budko
Posts: 1204
Joined: Fri 01 Apr, 2005 14:03
Contact:

Re: ver_c0

Post by Andrey Budko » Mon 14 Jun, 2010 18:40

гнуси кривое?

мож обновить хидеры?

Shmuel
Posts: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

Re: ver_c0

Post by Shmuel » Mon 14 Jun, 2010 18:46

HaRT wrote:
Shmuel wrote:Потому что это - плохая программа. Для функций семейства printf компилятор не обязан
То, что Вы пишете про printf, правда; то, что про эту программку — нет.
К сожалению, Вы не аргументируете, придётся мне:
Whether the result of sizeof is unsigned int or unsigned long is implementation defined.
Некогда сейчас искать стандарт - вот первая попавшаяся ссылка.

User avatar
HaRT
Moderator
Posts: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 68 times
Been thanked: 106 times

Re: ver_c0

Post by HaRT » Mon 14 Jun, 2010 19:03

Shmuel wrote:Некогда сейчас искать стандарт - вот первая попавшаяся ссылка.
Стандарт 2003-его года на C++ гласит “The result is a constant of type size_t.” (5.3.3.6). Т.е. результат действительно запросто может оказаться больше, чем int. Т.о. в продукт такой код и впрямь плох. А вот для быстрого эксперимента — что мы собственно тут и наблюдаем — вполне.
Если ещё учесть, на платформе какого семейства автор программку запускал, становится понятно, что к иллюстрируемому различию та огреха отношения не имеет, и Ваш вывод “Потому что это - плохая программа” ложен.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5230
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 151 times

Re: ver_c0

Post by Shmuel » Mon 14 Jun, 2010 19:23

HaRT wrote:Т.е. результат действительно запросто может оказаться больше, чем int. Т.о. в продукт такой код и впрямь плох. А вот для быстрого эксперимента — что мы собственно тут и наблюдаем — вполне.
Мне абсолютно неинтересно докапываться до причины, почему данный конкретный плохой код с данными конкретными компиляторами работает неодинаково. Подразделения "в продукт" и "для быстрого эксперимента" мне тоже неинтересны: плохой код - он и в Африке плохой код.

Post Reply

Return to “Разработка плагинов”