FsGetPreviewBitmap в FS плагинах
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
А в чем? Хардвер отметаем, так? Тогда остается только Windows. Ты предлагаешь обратиться к Билли?Hram писал(а):Просто у меня есть подозрение, что дело не в ТС и не в плагине
А опыт не подсказывает куда надо смотреть?Hram писал(а):Опыт подсказывает, что проблема гдето на поверхности, но мы не там смотрим.
Стал разбираться с багой. Написал простенький код для загрузки функции из плагина, оказалось, что она попросту не находится. Функция GetProcAddress не возвращает её адрес.
Проверяющее приложение вместе с исходниками можно взять тут: http://super.wincmd.ru/_tmp/FsGetPreviewBitmapTest.rar
Код очевиден и в комментировании не нуждается.
Запостил на оффоруме то же самое.
Проверяющее приложение вместе с исходниками можно взять тут: http://super.wincmd.ru/_tmp/FsGetPreviewBitmapTest.rar
Код очевиден и в комментировании не нуждается.
Запостил на оффоруме то же самое.
Стал экспериментировать. Заменил в подопытном плагине описание функции с
на
и функция стала находиться. Предварительный вывод: что-то не так с функциями, в которые параметры передаются по ссылке.
Код: Выделить всё
function FsGetPreviewBitmap(RemoteName:pchar;width,height:integer; var ReturnedBitmap:HBitmap):integer; stdcall;Код: Выделить всё
function FsGetPreviewBitmap(RemoteName:pchar;width,height:integer):integer; stdcall;Странно, у меня находится. И твоя программа на моих компах прекрасно работает. Написал свою на С++, тоже все находит.D1P писал(а):оказалось, что она попросту не находится.
Ну не знаю, как в дельфях, но на С++ первый параметр (RemoteName) тоже является ссылкой.D1P писал(а):Предварительный вывод: что-то не так с функциями, в которые параметры передаются по ссылке.
Выложи куда-нить плагин, в котором GetProcAddress не может найти FsGetPreviewBitmap. Хочется глянуть своими средствами.
В дельфях тоже. Вернее, это указатель, в принципе монопенисуально, что так, что эдак (через var)). Но HBitmap - это LongWord, посему его только через VAR и можно предать. Если я, в порядке эксперимента, var в отладчике убираю - функция видится.VadiMGP писал(а):Ну не знаю, как в дельфях, но на С++ первый параметр (RemoteName) тоже является ссылкой.
http://super.wincmd.ru/twinamp3/TWinamp3_FGPBT.rarVadiMGP писал(а):Выложи куда-нить плагин, в котором GetProcAddress не может найти FsGetPreviewBitmap. Хочется глянуть своими средствами.
Исходники и бинарник внутри.
Доберусь домой - посмотрю.VadiMGP писал(а):Кстати, а что у тебя возвращает GetLastError когда GetProcAddress не находит функцию?
В любом случае, теперь я смогу нормально реализовать и отладить функцию, а будет она или не будет вызываться - уже не мои грехи. Я, честно говоря, не знаю, есть ли FS-плагины уже реализовавшие эту возможность... Видимо их нет, потому что наверняка бы были багрепорты от пользователей, у которых функция бы не работала.
Так что мой плагин рискует тут стать первым =)