Total Commander Knowledge Base

Есть вопрос?

Поищите ответ в самой большой русскоязычной базе знаний по Total Commander!

Total Commander x64

Начиная с версии 8.0 Total Commander поставляется в двух вариантах: 32-битном и 64-битном.

Проблемы и недостатки 32-битной версии при работе в 64-битной среде

  • 32-битная версия TC подвержена перенаправлению файловой системы и ветвей реестра, являющемуся частью подсистемы WOW64, эмулирующей 32-битное окружение. В частности, это приводит к следующим эффектам:
    • При попытке просмотра каталога \Windows\System32 система незаметно подсовывает содержимое \Windows\SysWOW64. Сделано это из-за того, что в System32 лежат 64-битные библиотеки, а в SysWOW64 — 32-битные (да-да, это не опечатка), и чтобы старые 32-битные программы, рассчитанные на наличие 32-битных библиотек в System32, продолжали работать в 64-битной среде, в Windows реализовали такую схему с подстановкой. Следствие: недоразумения при попытке работать из TC с каталогом System32 и его подкаталогами, когда все операции перенаправляются в SysWOW64, а пользователь об этом не догадывается. Пути решения проблемы: использование символической ссылки на реальный System32 или виртуальной папки SysNative (имеется в Vista и выше; в XP/2003 доступна после установки KB942589) или временное отключение перенаправления командой cm_SwitchX64Redirection (Внимание: это может привести к неработоспособности некоторых функций TC, таких как сеть, мультимедиа и плагины).
    • Прямое следствие из предыдущего пункта: если из 32-битного TC запустить программу, располагающуюся в System32 (например, cmd.exe), запустится 32-битная копия из SysWOW64 и унаследует все те же проблемы и ограничения, что и любая другая 32-битная программа в 64-битном окружении. То же самое относится к regedit.exe, который, в частности, используется для импорта REG-файлов в реестр. То есть если дважды щёлкнуть по REG-файлу, то он может быть импортирован совсем не в ту ветку реестра, в какую нужно.
    • Если запустить 64-битную программу из 32-битного TC, она унаследует его переменные окружения, отличающиеся от таковых в "настоящей" 64-битной среде. Для большинства программ это не критично, но в некоторых случаях это может вылезти боком.
    • Расширения Проводника могут использоваться в TC для отображения дополнительных пунктов в контекстных меню, вывода эскизов, файловых значков (обычных и оверлейных), всплывающих подсказок, и т. д. Однако расширения являются DLL-библиотеками, поэтому TC как 32-битная программа сможет в себя загрузить только 32-битные библиотеки. В результате все функции, реализованные 64-битными расширениями, останутся в TC недоступными. Единственным исключением являются пункты контекстного меню, которые выводятся через специальное подменю X64, реализующееся посредством 64-битной утилиты TCMDX64.EXE, однако оно работает очень медленно, и пользоваться им неудобно.
  • 32-битное приложение может адресовать только 4 Гб памяти, из которых 2 Гб (в особых случаях — 1 Гб) заняты системой. Поэтому функции, требующие большого количества памяти, могут не работать. Пример: сравнение файлов по содержимому требует полной загрузки обоих файлов в память. Даже если на компьютере установлено достаточное количество оперативки, 32-битный TC просто не сможет ей воспользоваться, и большие файлы сравнить не получится.

Проблемы и недостатки 64-битной версии

  • Аналогично пункту из 32-битной версии, 64-битная программа может загружать в себя только 64-битные библиотеки, поэтому 32-битные расширения Проводника в 64-битном TC будут недоступны. Как и с 32-битной версией, пункты контекстного меню можно использовать через подменю X32 (по умолчанию оно отключено и включается ключом X64menu=1 в секции [Configuration] файла wincmd.ini).
  • Плагины TC тоже являются DLL-библиотеками, поэтому 64-битный TC не может использовать 32-битные плагины, а под 64-битную архитектуру портированы далеко не все.
  • Размер исполняемого файла 64-битной версии почти вдвое больше, чем у 32-битной версии. Связано это с тем, что компилируются они, соответственно, в Lazarus и Delphi 2.0.
  • Другое следствие использования Lazarus: не все компоненты реализуют поведение, идентичное Delphi, и в 64-битной версии TC могут наблюдаться мелкие отличия от 32-битной в тех местах, где эти отличия не являются критичными (например, некоторые элементы интерфейса могут быть сдвинуты на 1–2 пикселя, если это не вызывает наползаний их друг на друга). Также перерисовка интерфейса в некоторых случаях может быть несколько замедленной по сравнению с 32-битной версией.