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 

Копирование папок из WFX плагина

 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
featZima



Joined: 07 Dec 2009
Posts: 4

Post (Separately) Posted: Mon Dec 07, 2009 14:21    Post subject: Копирование папок из WFX плагина Reply with quote

Проблема состоит в следующем. В первый раз в функцию FsGetFile тотал передаёт нормальное локальное имя файла, а в последующие разы уже испорченное, подскажите, почему так может быть?*

1-ый раз: http://floomby.ru/content/hug1OoMem0/
2-ой раз: http://floomby.ru/content/dsPglKZXCE/
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Mon Dec 07, 2009 17:47    Post subject: Reply with quote

featZima
А по какой причине функция вызывается второй раз?
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
featZima



Joined: 07 Dec 2009
Posts: 4

Post (Separately) Posted: Mon Dec 07, 2009 23:55    Post subject: Reply with quote

1. Если копировать файлы, для каждого ручками нажимая F5 - всё нормально
2. Если копировать файлы, выделив несколько и нажав F5 - всё нормально
3. Если копировать папку (или папки) в которых есть эти файлы - для первого файла функция вызывается с нормальными параметрами, для остальных с испорченными...
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Tue Dec 08, 2009 02:50    Post subject: Reply with quote

Не подтверждаю. Сейчас создал у себя в плагине простейшую функцию FsGetFileW (С++):
Code:
int __stdcall FsGetFileW(WCHAR* RemoteName, WCHAR* LocalName, int CopyFlags, RemoteInfoStruct* ri)
{
   if (theApp.ProgressProcW(theApp.PluginNr, LocalName, RemoteName, 0) == 1)
      return FS_FILE_USERABORT;
   theApp.ProgressProcW(theApp.PluginNr, LocalName, RemoteName, 100);
   return FS_FILE_OK;
}

В плагине создал папку с десятком файлов и подпапкой, в которой ещё пара файлов, вызвал копирование — все имена пришли в функцию в нормальном виде.

Подозреваю, что где-то в коде плагина происходит порча данных, на которые опирается Тотал.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
featZima



Joined: 07 Dec 2009
Posts: 4

Post (Separately) Posted: Tue Dec 08, 2009 02:55    Post subject: Reply with quote

Стоп) Большой спасибо, за помощь! Но с юникодным вариантом и у меня всё нормально... Проблема как раз в Ansi варианте... Про то, что плагин портит данные, не думаю -- убрал всё из функций (результат тотже)...
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Tue Dec 08, 2009 03:06    Post subject: Reply with quote

Ну с ANSI сложнее. У меня этот плагин исключительно юникодный… Попробовал сейчас вместо FsGetFileW воткнуть FsGetFile с соответствующими модификациями, точно так же корректно всё работает, но не исключено, что общая юникодность плагина сказывается.

Идей больше не имею. Попробуй создать с нуля минимальный проект FS-плагина, где все функции — пустые заглушки, ну и чуть-чуть захардкоденных строк, чтобы список файлов непустой был, и на нём уже проверить поведение функции. Если и там баг воспроизведётся, то выложи этот мини-проектик на всеобщее обозрение. А то ни воспроизвести, ни проверить… У меня, правда, дельфей нет, так что поучаствовать смогу только методом пристального взгляда, но тут дельфистов немало обитает, авось помогут в поиске и отладке.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group