Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Плагин не должен использовать глобальные переменные 
Author Message
CaptainFlint



PostPosted: Mon Oct 08, 2007 13:31    Post subject: Reply with quote

Моторокер wrote:
А применительно к архиваторным плагинам?
А к контентным?

А к ним такого предупреждения я и не встречал, только к WLX.

Моторокер wrote:
Где для ускорения работы хранить в памяти файл, как не в глобальной переменной?

Можешь хранить в глобальной, просто имей в виду, что глобальная переменная - она одна-единственная на весь программный код Тотала, общая на всё пространство процесса, включая все загруженные плагины. Проблема здесь только в том, что когда работаешь одновременно с двумя файлами в Lister'е, глобальная переменная будет у них общая. Поменяешь в одном окне - она поменяется и в другом. Это всё понятно и очевидно, когда уже знаешь, в чём дело, но для новичков это может стать неожиданностью - разрабатывая отдельные программы, привыкаешь к мысли, что всё содержимое твоего кода используется только и исключительно одной копией программы. При разработке DLL эта концепция становится ошибочной, поэтому Гислер и вписал такое предупреждение в справку.

Если очень хочется хранить что-то в глобальных переменных - никто не запрещает этого делать, просто надо подходить к этому с умом. Например, держать не просто данные о файле (ведь файл будет каждый раз другим), а хэш-таблицу, где эти данные привязаны к полному имени файла. Ну или хранить общие настройки плагина (только не забывать о синхронизации потоков).
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
View user's profile Send private message Visit poster's website


Powered by phpBB © 2001, 2005 phpBB Group