Page 1 of 3
ver_c0 - отображение версий файлов в колонке C0
Posted: Sun 13 Jun, 2010 02:38
by Maximus5
Отображение версии *.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] ║
Скачать
Re: ver_c0
Posted: Sun 13 Jun, 2010 14:37
by Maximus5
Оптимизировано
Re: ver_c0
Posted: Sun 13 Jun, 2010 14:47
by Игорь Юдинцев
течёт память, лочатся файлы с VERSION_INFO.
Re: ver_c0
Posted: Sun 13 Jun, 2010 14:59
by Maximus5
исправил
Re: ver_c0
Posted: Mon 14 Jun, 2010 12:20
by Maximus5
пересобрано в VC, добален бинарник для x64
(собранный в gcc валился на 64битных dll)
Re: ver_c0
Posted: Mon 14 Jun, 2010 12:23
by zg
Maximus5 wrote: пересобрано в VC, добален бинарник для x64
(собранный в gcc валился на 64битных dll)
вот он гуманитарный подход во всей красе
Re: ver_c0
Posted: Mon 14 Jun, 2010 12:31
by Kerberos464
скажите, а этим плагином уже можно пользоваться "обычным фароюзерам"?
если да, то где можно найти эту колонку C0?
Re: ver_c0
Posted: Mon 14 Jun, 2010 12:32
by Maximus5
Да, ты знаешь, почему-то проще (или быстрее) выложить рабочую сборку, чем разбираться в глюках gcc.
Наверное ты делаешь по другому?
Может в gcc какие-то хидеры неправильные, это я буду разбираться. А пока буду - люди уже смогут пользоваться не падающей версией.
Если ты это называешь гуманитарным подходом - то я скорее гуманным.
Re: ver_c0
Posted: Mon 14 Jun, 2010 12:48
by zg
Maximus5 wrote: Да, ты знаешь, почему-то проще (или быстрее) выложить рабочую сборку, чем разбираться в глюках gcc.
спешить увеличивать энтропию вселенной, это конечно очень важно.
Наверное ты делаешь по другому?
да.
Может в gcc какие-то хидеры неправильные, это я буду разбираться.
может. а может у тебя в коде баг. и сборка другим компилятором просто маскирует его?
Если ты это называешь гуманитарным подходом - то я скорее гуманным.
я называю этот подход несколько иначе. «гуманитарный» — гуманное обозначение для этого форума.
Re: ver_c0
Posted: Mon 14 Jun, 2010 16:31
by Maximus5
вежливо облить грязью - у некоторых это хорошо получается, да...
Вот объясни мне, как крупный специалист гуманитарию. Почему вот эта программа, собранная для 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;
}
выдает различные
Code: Select all
F:\VCProject\FarPlugin\win64>w64_gcc.exe
sizeof(IMAGE_NT_HEADERS64)=248
sizeof(IMAGE_FILE_HEADER)=20
sizeof(IMAGE_OPTIONAL_HEADER64)=240
F:\VCProject\FarPlugin\win64>w64_vc.exe
sizeof(IMAGE_NT_HEADERS64)=264
sizeof(IMAGE_FILE_HEADER)=20
sizeof(IMAGE_OPTIONAL_HEADER64)=240
при сборке разными компиляторами?
Ошибку в коде я в упор не вижу. Допускаю, что я не умею мейки для gcc делать, но сомневаюсь, что дело в нем.
Re: ver_c0
Posted: Mon 14 Jun, 2010 18:20
by Shmuel
Maximus5 wrote: Почему вот эта программа, собранная для x86,
[...]
выдает различные результаты
Потому что это - плохая программа. Для функций семейства printf компилятор не обязан проверять (и чаще всего - не проверяет) соответствие типов между шаблонами и аргументами - это ответственность программиста. Не проверяется и соответствие числа шаблонов числу аргументов.
Например, нижеследующий вызов может просто завалить программу:
Re: ver_c0
Posted: Mon 14 Jun, 2010 18:34
by HaRT
Shmuel wrote: Потому что это - плохая программа. Для функций семейства printf компилятор не обязан
То, что Вы пишете про printf, правда; то, что про эту программку — нет.
Re: ver_c0
Posted: Mon 14 Jun, 2010 18:40
by Andrey Budko
гнуси кривое?
мож обновить хидеры?
Re: ver_c0
Posted: Mon 14 Jun, 2010 18:46
by Shmuel
HaRT wrote: Shmuel wrote: Потому что это - плохая программа. Для функций семейства printf компилятор не обязан
То, что Вы пишете про printf, правда; то, что про эту программку — нет.
К сожалению, Вы не аргументируете, придётся мне:
Whether the result of sizeof is unsigned int or unsigned long is implementation defined.
Некогда сейчас искать стандарт - вот
первая попавшаяся ссылка .
Re: ver_c0
Posted: Mon 14 Jun, 2010 19:03
by HaRT
Стандарт 2003-его года на C++ гласит “The result is a constant of type size_t.” (5.3.3.6). Т.е. результат действительно запросто может оказаться больше, чем int. Т.о. в продукт такой код и впрямь плох. А вот для быстрого эксперимента — что мы собственно тут и наблюдаем — вполне.
Если ещё учесть, на платформе какого семейства автор программку запускал, становится понятно, что к иллюстрируемому различию та огреха отношения не имеет, и Ваш вывод “Потому что это - плохая программа” ложен.