Ресурсы > Разработка плагинов / Обсуждение API

Разработка плагинов - основные ошибки

(1/2) > >>

Дмитрий Маслов:
При разработке плагинов к LeaderTask, разработчики допускают всяческие неточности при взаимодействии с LeaderTask API.
В этой теме будут выкладываться типичные ошибки.

Дмитрий Маслов:
1. Используйте юникод!

Игнорирование того, что параметры должны поступать в юникоде - двухбайтной кодировке, типичной для функций Windows API (wchar_t) - приводит к ошибкам.
Передача строковых параметров в ansi (однобайтной кодировке) в лучшем случае воспримется программой как китайский язык, в общем случае приводит либо к падению программы, либо неопределенному поведению.
Это касается всех функций, в том числе и AddinLT_Task_SetRTFComment

Дмитрий Маслов:
2. Следите за зависимостями от сторонних DLL

На компьютере пользователя могут отсутствовать необходимые для работы Вашего плагина DLL - тогда Ваш плагин просто у пользователя не загрузится (без всяких ошибок).
Самое распространенное здесь это отсутствие Debug библиотек у пользователя, по этому выкладывайте плагины всегда в Release сборке.

Hush:
3. Для Delphi нужно указать модель вызова функции "cdecl"
Пример:

--- Код: ---function AddinLT_Task_GetTitle(id:PWideChar):PWideChar; cdecl; external 'lt_plugins.dll' name 'AddinLT_Task_GetTitle';
--- Конец кода ---

Дмитрий Маслов:
4. Запускайте функции LeaderTask API (AddinLT_...) в основном потоке

На текущий момент работа плагинов не предназначена для многопоточного режима, по этому вызов функций LeaderTask API из потоков созданных внутри плагина может приводить к зависанию, вылетанию программы или зацикливанию.
В следующих версиях все функцию будут возвращать FALSE если вызваны не в том потоке.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии