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 

FsGetPreviewBitmap в FS плагинах
Goto page Previous  1, 2, 3, 4, 5  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Hram



Joined: 19 May 2005
Posts: 113
Location: Питер

Post (Separately) Posted: Thu Oct 25, 2007 22:24    Post subject: Reply with quote

Просто у меня есть подозрение, что дело не в ТС и не в плагине
Опыт подсказывает, что проблема гдето на поверхности, но мы не там смотрим.
Back to top
View user's profile Send private message
VadiMGP



Joined: 21 Mar 2007
Posts: 1625

Post (Separately) Posted: Thu Oct 25, 2007 23:40    Post subject: Reply with quote

Hram wrote:
Просто у меня есть подозрение, что дело не в ТС и не в плагине
А в чем? Хардвер отметаем, так? Тогда остается только Windows. Ты предлагаешь обратиться к Билли?
Hram wrote:
Опыт подсказывает, что проблема гдето на поверхности, но мы не там смотрим.
А опыт не подсказывает куда надо смотреть? Wink
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Wed Nov 14, 2007 02:42    Post subject: Reply with quote

Решение было найдено? Стал добавлять функцию в свой плагин, тоже наткнулся на эту бяку. Функция не вызывается.
Стоит Windows 2003 Enterprise. Delphi 7. Топик на оффоруме прочёл, там ничего полезного нет.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
Hram



Joined: 19 May 2005
Posts: 113
Location: Питер

Post (Separately) Posted: Wed Nov 14, 2007 08:44    Post subject: Reply with quote

Решение одно - ждать когда Гислер исправит баг.
Back to top
View user's profile Send private message
VadiMGP



Joined: 21 Mar 2007
Posts: 1625

Post (Separately) Posted: Wed Nov 14, 2007 11:02    Post subject: Reply with quote

Гислер пока даже не подтвердил, что может воспроизвести этот баг. А пока не воспроизведет чинить, естессно, не будет. D1P, ты бы отметился на оффоруме тоже. Может, с увеличением числа плакальщиков Гислер активизируется.
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Wed Nov 14, 2007 15:20    Post subject: Reply with quote

Стал разбираться с багой. Написал простенький код для загрузки функции из плагина, оказалось, что она попросту не находится. Функция GetProcAddress не возвращает её адрес.

Проверяющее приложение вместе с исходниками можно взять тут: http://super.wincmd.ru/_tmp/FsGetPreviewBitmapTest.rar
Код очевиден и в комментировании не нуждается.

Запостил на оффоруме то же самое.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Wed Nov 14, 2007 15:44    Post subject: Reply with quote

Стал экспериментировать. Заменил в подопытном плагине описание функции с
Code:
function FsGetPreviewBitmap(RemoteName:pchar;width,height:integer; var ReturnedBitmap:HBitmap):integer; stdcall;

на
Code:
function FsGetPreviewBitmap(RemoteName:pchar;width,height:integer):integer; stdcall;


и функция стала находиться. Предварительный вывод: что-то не так с функциями, в которые параметры передаются по ссылке.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
VadiMGP



Joined: 21 Mar 2007
Posts: 1625

Post (Separately) Posted: Wed Nov 14, 2007 17:36    Post subject: Reply with quote

D1P wrote:
оказалось, что она попросту не находится.
Странно, у меня находится. И твоя программа на моих компах прекрасно работает. Написал свою на С++, тоже все находит.
D1P wrote:
Предварительный вывод: что-то не так с функциями, в которые параметры передаются по ссылке.
Ну не знаю, как в дельфях, но на С++ первый параметр (RemoteName) тоже является ссылкой.
Выложи куда-нить плагин, в котором GetProcAddress не может найти FsGetPreviewBitmap. Хочется глянуть своими средствами.
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Wed Nov 14, 2007 23:00    Post subject: Reply with quote

VadiMGP wrote:
Ну не знаю, как в дельфях, но на С++ первый параметр (RemoteName) тоже является ссылкой.

В дельфях тоже. Вернее, это указатель, в принципе монопенисуально, что так, что эдак (через var)). Но HBitmap - это LongWord, посему его только через VAR и можно предать. Если я, в порядке эксперимента, var в отладчике убираю - функция видится.
VadiMGP wrote:
Выложи куда-нить плагин, в котором GetProcAddress не может найти FsGetPreviewBitmap. Хочется глянуть своими средствами.

http://super.wincmd.ru/twinamp3/TWinamp3_FGPBT.rar
Исходники и бинарник внутри.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
VadiMGP



Joined: 21 Mar 2007
Posts: 1625

Post (Separately) Posted: Thu Nov 15, 2007 00:19    Post subject: Reply with quote

Архив битый. Дважды скачивал, но wfx извлечь не могу.
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Thu Nov 15, 2007 04:52    Post subject: Reply with quote

Возьми тогда ссылки из этого поста.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Thu Nov 15, 2007 12:39    Post subject: Reply with quote

Сейчас попробовал тот же код на работе (Delphi 7, XP SP2) - всё заработало...

Попозже, как разгребу основную работу, поэкспериментирую ещё.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
VadiMGP



Joined: 21 Mar 2007
Posts: 1625

Post (Separately) Posted: Thu Nov 15, 2007 12:49    Post subject: Reply with quote

D1P
Проверил на ХР и 2000. Нулевой результат, все работает. И твоя и моя тестовые программы нормально находят FsGetPreviewBitmap в твоем плагине. Имена экспортированы "чистые", недекорированные, то есть, по идее, параметры никак не должны влиять.
Больше никаких идей нету.
Back to top
View user's profile Send private message
VadiMGP



Joined: 21 Mar 2007
Posts: 1625

Post (Separately) Posted: Thu Nov 15, 2007 12:53    Post subject: Reply with quote

D1P
Кстати, а что у тебя возвращает GetLastError когда GetProcAddress не находит функцию?
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Thu Nov 15, 2007 14:38    Post subject: Reply with quote

VadiMGP wrote:
Кстати, а что у тебя возвращает GetLastError когда GetProcAddress не находит функцию?

Доберусь домой - посмотрю.

В любом случае, теперь я смогу нормально реализовать и отладить функцию, а будет она или не будет вызываться - уже не мои грехи. Я, честно говоря, не знаю, есть ли FS-плагины уже реализовавшие эту возможность... Видимо их нет, потому что наверняка бы были багрепорты от пользователей, у которых функция бы не работала.
Так что мой плагин рискует тут стать первым =)
_________________
База знаний о Total Commander
Блог
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
Goto page Previous  1, 2, 3, 4, 5  Next
Page 4 of 5

 
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