Плагин не всегда подгружается к TC

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

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

Ответить
vampir_infernal
Сообщения: 6
Зарегистрирован: Пт фев 17, 2006 08:36
Откуда: Октябрьский
Контактная информация:

Плагин не всегда подгружается к TC

Сообщение vampir_infernal »

Здравствуйте.
Я написал Lister-plugin к тоталу. Но он не всегда подгружается, то есть по нажатию F3 на нужном файле открывается не окно моего плагина, а стандартное окно листера. При этом в настройках плагинов напротив строки с файлом плагина нет идентификационной строки. Перезапуск TC эту проблему не решает. Если запустить TC и полазить по папкам некоторое время, то иногда плагин подгружается и работает нормально. Зависимости от файлов нет: на Вин98 так же запускается с переменным успехом, а вот на машине с 64-битным процессором еще ниразу не запустился. При написании использовал стандартный listplug.pas.
Подскажите пожалуйста, в чем может быть проблема.
Спасибо.
Drunked up in a coma place
Critics disgusted, but a smile is on my fucking face
(c)Pantera - Uplift
Аватара пользователя
Parcan
Сообщения: 399
Зарегистрирован: Ср дек 15, 2004 16:39
Откуда: Russian

Сообщение Parcan »

vampir_infernal
а ты в дебаге смотрел?
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Код: Выделить всё

При этом в настройках плагинов напротив строки с файлом плагина нет идентификационной строки.
1) Попробуй снести плагин, поставить заново
2) Попробуй прописать идентификатор вручную
3) Попробуй нажать "4" в листере, если сработает, перемести свой плагин выше в списке плагинов
vampir_infernal
Сообщения: 6
Зарегистрирован: Пт фев 17, 2006 08:36
Откуда: Октябрьский
Контактная информация:

Сообщение vampir_infernal »

1) Попробуй снести плагин, поставить заново
пробовал, так подгружается чаще, но не всегда.
2) Попробуй прописать идентификатор вручную
в wincmd.ini пробовал все в ручную прописывать, строка появляется, но все равно не грузится.
а ты в дебаге смотрел?
в каком дебаге? объясните пожалуйста.
vampir_infernal
Сообщения: 6
Зарегистрирован: Пт фев 17, 2006 08:36
Откуда: Октябрьский
Контактная информация:

Сообщение vampir_infernal »

уважаемые! те, кто писал плагины на Delphi, дайте пожалуйста, кому не жалко, листинг вашей процедуры ListGetDetectString для сравнения. спасибо.
Аватара пользователя
Nik
Сообщения: 583
Зарегистрирован: Сб янв 01, 2005 13:00
Откуда: Киров
Контактная информация:

Сообщение Nik »

Код: Выделить всё

procedure ListGetDetectString(DetectString: pchar; maxlen: integer); stdcall;
begin
 StrLCopy(DetectString, PChar(PARSE_FUNCTION), MaxLen);
end;
vampir_infernal
Сообщения: 6
Зарегистрирован: Пт фев 17, 2006 08:36
Откуда: Октябрьский
Контактная информация:

Сообщение vampir_infernal »

Нашел причину. Дело было в том, что плагин (или ТС) не видел библиотеку, без которой плагин не работает. Проблему решил, просто скопировав нужную библиотеку в SYSTEM32. Всем спасибо. Можете закрывать тему.
vserd
Сообщения: 118
Зарегистрирован: Вт апр 26, 2005 16:54

Сообщение vserd »

vampir_infernal
Нашел причину. Дело было в том, что плагин (или ТС) не видел библиотеку, без которой плагин не работает. Проблему решил, просто скопировав нужную библиотеку в SYSTEM32
поробуйте таки разобраться плагин не видет или тотал. Если плугин, тогда вы, как разработчик, должны ввести насторойку пути к нужной DLL. Не забудьте об переменных окружения (%Var_NAME%), иначе вас достанут авторы сборок, да и рядовые пользователи тоже.
Учтите что на win9x системах SYSTEM32 заменяется на System. Пускай таких пользователей мало, но они есть, и их игнорирование не рекомендуется.
vampir_infernal
Сообщения: 6
Зарегистрирован: Пт фев 17, 2006 08:36
Откуда: Октябрьский
Контактная информация:

Сообщение vampir_infernal »

vserd,
не важно, как называется папка. Нужно чтобы она входила в переменную окружения %PATH%

Если я правильно вас понял, то %Var_NAME% означает, что обращение к вышеозначенной переменной %PATH% будет выглядеть как %Var_PATH%. Буду пробовать разные варианты, спасибо.
Ответить