Архиваторный плагин на Delphi

Только для тех, кто пишет плагины под Total Commander. Обмен опытом, решение проблем.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

mramor писал(а):по-русски устоялось соглашение о вызове.
Компилятор C++ использует специальную декорацию имен, для того чтобы отличать overloaded-функции, имеющие одинаковые имена, но разные прототипы. Например, вызов: int func(int a, double b); в результате декорации становится: _func@12. Число 12 описывает количество байт, занимаемых списком аргументов. Такая условность называется naming convention (соглашение об именах). Есть и другая конвенция — calling convention (соглашение о связях), которая определяет договоренность о передаче параметров при вызове Win32 API-функций. Описатель _stdcall относится к этой группе.
Значит, не очень оно устоялось, раз переводчики используют и другие варианты.

И подобное, кстати, не редкость. Простой пример: registry keys повсеместно переводят как ключи реестра, тогда как русская версия Редактора реестра MS Windows использует исключительно термин разделы реестра.
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

всем спасибо, правлю
Volniy писал(а):currently - на данный момент / в настоящее время
вообще убрал, лишнее.
funduk писал(а):
...in this file, because it is shared by other file system plugins! -
... в этом файле, потому что он одновременно используется и другими плагинами!..
Тогда уж другими плагинами файловой системы?
Ага, уже добавил к тому времени.
Только этот момент не понял – если ini файл используется только FS плагинами, то зачем писать «другими FS плагинами». Если уж уточнять, то надо говорить, что ini файл используется только FS плагинами, а Arc плагины должны использовать свои ini файлы в этой папке.
А если ini может использоваться и Arc плагинами, то зачем уточнять?
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

Моторокер писал(а):вообще убрал, лишнее.
Не уверен, что лишнее. Вот в этом случае This structure of type PackDefaultParamStruct currently contains слово currently означает, что в другой версии плагинового интерфейса структура может быть и другой. Это - важная информация.
Моторокер писал(а):Только этот момент не понял – если ini файл используется только FS плагинами, то зачем писать «другими FS плагинами». Если уж уточнять, то надо говорить, что ini файл используется только FS плагинами, а Arc плагины должны использовать свои ini файлы в этой папке.
А если ini может использоваться и Arc плагинами, то зачем уточнять?
Про FS плагины в справке пишется по ошибке :!: Дока ведь по архиваторным, просто при написании архиваторной доки явно для шаблона использовалась дока по FS. Конечно же для FS плагинов их плагиновый интерфейс сообщит свое имя ini-файла. Вообще-то обычно предложенный интерфейсом ini-файл авторами плагинов не используется. Я у себя нашел только lsplugin.ini с одной секцией (похоже, что SWF Lister Lite, [swfll]), а у меня плагинов установлено...
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

Volniy писал(а):
Моторокер писал(а):вообще убрал, лишнее.
Не уверен, что лишнее. Вот в этом случае This structure of type PackDefaultParamStruct currently contains слово currently означает, что в другой версии плагинового интерфейса структура может быть и другой. Это - важная информация.
В какой другой версии? Новой? Но там и описание будет новое. Старой? Но там своё описание.
А если в новой отличается от старой, то так и пишется. Только ведь нет этого. Или текст это и ознавает, что есть изменения?
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Кстати, пора репортить Гислеру об ошибках :)
Пара функций проходит по манам как необязательные, но выясняется, что они обязательные?
Эти ФС-плагины не к месту. ещё.

P.S.: я репортить не буду.
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

Моторокер писал(а):Или текст это и ознавает, что есть изменения?
Так ведь сама эта функция только в этой версии интерфейса и появилась:
What's new
The following function has been added to plugin version 2.1. It's optional:

- The new function PackSetDefaultParams informs the plugin about the plugin version number and suggested ini location.
Вообще-то imho если речь идет именно о переводе, а не об авторской статье, тогда уж надо все переводить достаточно точно к оригиналу. А ошибки - в багрепорт.
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

Пара функций проходит по манам как необязательные, но выясняется, что они обязательные?
про это уже сообщал Олег Бондарь, ничего не сменилось
Вообще-то imho если речь идет именно о переводе, а не об авторской статье, тогда уж надо все переводить достаточно точно к оригиналу.
отсебятину (примеры, уточнения) выделяю, затем думаю, можно будет убрать и оставить только в статье, согласен

Add
Самому ещё нужно разобраться, что к чему. Пока закодировал только PackFiles и прогресс-бар.

Про версии непонятно написано – то ли про версии плагино-интерфейса, то ли про версии именно плагина.
Означает ли это, что версия плагина должна быть >2.1 или на усмотрение автора? Или плагин должен ещё проверять и версию интерфейса?
На выходных ещё гляну.
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

Моторокер писал(а):Про версии непонятно написано – то ли про версии плагино-интерфейса, то ли про версии именно плагина.
Означает ли это, что версия плагина должна быть >2.1 или на усмотрение автора? Или плагин должен ещё проверять и версию интерфейса?
Версия плагино-интерфейса передается плагину, чтобы он мог сориентироваться в какой среде ему предстоит работать. Допустим, в плагине реализована функция, которая не поддерживается в 5.5-ом Тотале (пример даю от фонаря), а плагин подключили именно к этой версии Тотала. Плагину следует знать, что выполнять эту функцию в данному случае нельзя, нужен или какой-то обход или сообщение, мол, не катит версия, или еще что-то.

А версия плагина интерфейсу абсолютно фиолетова 8)
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

Следующие функции добавлены в плагин (Примеч. интерфейс плагина) версии 2.12. Их использование необязательно:
- Новый флаг PK_CAPS_ENCRYPT может быть возвращён в GetPackerCaps для поддержки упаковки с паролем. Флаг PK_PACK_ENCRYPT может быть передан плагину в PackFiles.
- ReadHeaderEx теперь поддерживает в архивах файлы объёмом более 2 Gb

Для плагинов, которые распаковывают в CloseArchive: Установите размер в отрицательное значение процента (–1..–100) для непосредственной установки значения первого индикатора прогресса, –1000..–1100 для второго индикатора прогресса (-1000=0%).
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

// определение возможностей плагина
function GetPackerCaps: integer; stdcall;

Если не добавить PK_CAPS_MULTIPLE в возвращаемый результат, то при использовании плагина постоянно приходится снимать галочку «Отдельные архивы для каждого выбранного файла/каталога».

Хотя опция и противоречит возможностям плагина конвертации.
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Ответить