FreeBasic
Главная
Вход
Регистрация
Вторник, 16.04.2024, 11:54Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Freebasic » Вопросы по языку FreeBasic » Плагины для программы Total Commander (Не удаётся подключить библиотеку к программе Total Commander)
Плагины для программы Total Commander
БобрДата: Пятница, 14.02.2020, 19:11 | Сообщение # 1
Рядовой
Группа: Заблокированные
Сообщений: 2
Репутация: 0
Статус: Offline
Пытаюсь написать WDX-плагин для Total Commander на FreeBasic. Основной алгоритм почти написан, осталось немного настроить. Но я не могу
скомпилировать библиотеку. То есть - компилирую dll, переименовываю в
WDX, но при попытке подключить к Total Commander - последний ругается,
что мол, плагин неправильный. Я не учил Delphi, но вчера от унылости
буквально накатал рабочий кусок плагина на паскале. Я не понимаю многих
тонкостей в синтаксисе Delphi, потому и решил учить FreeBasic. Не хочу
вникать в Паскаль, неужели придётся? Вот код заготовки, он минимален, что я делаю не так?:

#INCLUDE "windows.bi"

ENUM
   ft_nomorefields
   ft_numeric_32
   ft_numeric_64
   ft_numeric_floating
   ft_date
   ft_time
   ft_boolean
   ft_multiplechoice
   ft_string
   ft_fulltext
   ft_datetime
   ft_stringw
   ft_fulltextw

   ft_nosuchfield = -1
   ft_fileerror = -2
   ft_fieldempty = -3
   ft_ondemand = -4
   ft_delayed = 0

   CONTENT_DELAYIFSLOW = 1

   MaxStr=2048
END ENUM

TYPE TimeFormat
   wHour AS USHORT
   wMinute AS USHORT
   wSecond AS USHORT
END TYPE

TYPE DateFormat
   wYear AS USHORT
   wMonth AS USHORT
   wDay AS USHORT
END TYPE

UNION uFieldValue
   fvNumeric_32 AS ULONGINT
   fvNumeric_64 AS ULONGINT
   fvNumeric_floating AS DOUBLE
   fvDate AS DateFormat
   fvTime AS TimeFormat
   fvBoolean AS ULONG
   fvMultiplechoice AS ZSTRING * MaxStr
   fvString AS ZSTRING * MaxStr
   fvFulltext AS ZSTRING * MaxStr
   fvDatetime AS FILETIME
END UNION

TYPE ContentDefaultParamStruct
   iSize AS ULONG
   PluginInterfaceVersionLow AS ULONGINT
   PluginInterfaceVersionHi AS ULONGINT
   DefaultIniName AS ZSTRING * MAX_PATH
END TYPE

FUNCTION ContentGetSupportedField CDECL ALIAS "ContentGetSupportedField" (BYVAL FieldIndex AS INTEGER, _
FieldName AS ZSTRING, Units AS ZSTRING, BYVAL MaxLen AS INTEGER) AS INTEGER EXPORT
   IF FieldIndex > 10 THEN RETURN ft_nomorefields ELSE RETURN ft_string
END FUNCTION

FUNCTION ContentGetValue CDECL ALIAS "ContentGetValue" (FileName AS ZSTRING, BYVAL FieldIndex AS INTEGER, _
BYVAL UnitIndex AS INTEGER, FieldValue AS uFieldValue, BYVAL MaxLen AS INTEGER, BYVAL Flags AS INTEGER) AS INTEGER EXPORT
   RETURN ft_string
END FUNCTION

Добавлено (14.02.2020, 19:15)
---------------------------------------------
Забыл написать. Меняю соглашение на PASCAL или на STDCALL - всё равно не получается.

 
haavДата: Пятница, 14.02.2020, 20:47 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Серьезно? Это весь плагин? И какая функция отвечает за инициализацию? Как ты передаешь свою функцию в тотал?

Должен же быть какой-то определенный интерфейс для коммуникации dll в программу , а в примере выше я вижу лишь юзерские функции. Нет, может я ошибаюсь и тотал использует именно такие имена ContentGetSupportedField , ContentGetValue , но зная о большой распространенности программы и большого наличия плагинов , я думаю за такие инициализации автора на смех бы подняли smile

Читай документацию по плагинам к программе. Может даже есть примеры плагинов не только на дельфи. Больше вряд ли чем помогу. На винде почти не сижу уже давно, и ставить платную прогу и тратить на нее свое время не стану принципиально .


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
БобрДата: Воскресенье, 16.02.2020, 21:55 | Сообщение # 3
Рядовой
Группа: Заблокированные
Сообщений: 2
Репутация: 0
Статус: Offline
Люди, а на форуме программисты вообще обитают? Может быть, я зря помощи жду? Что это за повсеместная хамская манера давать советы без повода? Человек даже в винде не сидит. Ты сам то почитай мануалы по тоталу перед тем как подобные советы давать. Во FreePascal'е всё работает, между прочим. Именно с этими функциями.
 
haavДата: Понедельник, 17.02.2020, 10:52 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Цитата Бобр ()
Во FreePascal'е всё работает, между прочим. Именно с этими функциями.


Работает? Супер! А здесь тебе делать больше нечего.

P.S. И кстати ошибки в коде и возможные причины неработоспособности я предполагаю, но увы ... Тему кстати закрою, незачем: у тебя во фрипаскале и так все работает, да и советы тебе не нужны.

P.P.S Хочу чтобы было всем понятно , здесь не было и не будет демократии , только тоталитаризм. Будущих выскакивающих из ... банить буду точно также.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
DarkDemonДата: Понедельник, 17.02.2020, 20:59 | Сообщение # 5
Полковник
Группа: Друзья
Сообщений: 188
Репутация: -2
Статус: Offline
Цитата Бобр ()
Люди, а на форуме программисты вообще обитают?

Обитают, тот человек, кого ты назвал хамом, написал Window9, своё IDE, сделал полный перевод русской справки,
кучу крутых примеров, статей, написал учебник по FB и админит русскоязычный сайт(топ России по FB) + этот форум.
Его готовыми сборками с FBEdit пользуется пол рунета.
Так что молодец, испортил отношения с одним из самых квалифицированных программеров. Теперь можешь сразу
идти на FreePascal, который, к слову, ничем не лучше и одновременно не хуже на 3GL. Иногда всё таки лучше
думать прежде чем что-то писать с нахрапу. happy

Цитата haav ()
здесь не было и не будет демократии

И прально.


Сообщение отредактировал DarkDemon - Понедельник, 17.02.2020, 21:26
 
Форум » Freebasic » Вопросы по языку FreeBasic » Плагины для программы Total Commander (Не удаётся подключить библиотеку к программе Total Commander)
  • Страница 1 из 1
  • 1
Поиск: