LINUX.ORG.RU

[c][плагины][библиотеки] Как передать плагину данные сложного типа?

 , ,


0

1

Работаю над поддержкой плагинов в моем hex-редакторе. dlopen/dlsym, чистый Си, все честь по чести. Вопрос, как передать плагину сложную структуру, например связный список команд редактора (с командами, описанием, и обработчиками (указателями на функции))? И как дать ему возможность добавлять/удалять в этот список?

★★★★★

Ответ на: комментарий от XVilka

Да. Функции же вызываются непосредственно.

Главное, чтобы состав используемых структур данных совпадал как в приложении, так и в плагине :)

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

И за настройками выравнивания не вредно последить.

Miguel ★★★★★
()
Ответ на: комментарий от gaga

развитие bvi http://bvi.sourceforge.net/ - c поддержкой цветовых схем, расширенной системой команд и скриптингом на lua. Релиза пока нет - еще дописывать и дописывать. Посмотреть текущий статус можно здесь - бранч refactor https://gitorious.org/bvi/bvi

Основная задумка этого редактора - помощь в реверс-инжиниринге форматов файлов. Поэтому планируется добавить также поддержку сигнатур, версионирования и прочего. Если имеется какое-либо пожелание - высказывайте - учтем. Ориентируюсь я на Vim.

XVilka ★★★★★
() автор топика
Ответ на: комментарий от beastie

Вогоны? No way! Хорошо хоть стихи читать не будут.

XVilka ★★★★★
() автор топика
Ответ на: комментарий от XVilka

Слушай, а правда, что такого редактора до сих пор нет?

Я просто по работе довольно часто имею дело с хитрыми бинарными форматами и пользуюсь обычным хекс-редактором, уже даже не помню как называется. И постоянно ловлю себя на мысли, что очень не хватает скриптуемого редактора, который умел бы сам разбирать данные.

К сожалению, все руки не доходят покопаться с этим поподробнее, просто даже удивительно, что за столько лет ничего подобного, на первый взгляд, сделано не было. Или я просто плохо искал?

Идеальный хекс-редактор, по-моему, должен уметь автоматически разбирать данные на основе их описания, для этого было бы здорово интегрировать в него что-то вроде PADS или BinPAC. Тогда анализ бы сильно упростился. Ничего подобного не планируется?

gaga
()
Ответ на: комментарий от gaga

Я пересмотрел тысячи редакторов, но весь скриптинг в них сводился к минимальному «влево-заменить-поиск-следующий».

Как раз ради такого он и пишется :) Но, только это будет не сразу. А вообще, постепенно веду рефакторинг, чтобы можно было UI в виде плагинов - отдельно консолька, отдельно графика.

XVilka ★★★★★
() автор топика
Ответ на: комментарий от beastie

вогон и маленькая тележка

о, даа... и паконы еще туда же.
подтягивай русский!

aol ★★★★★
()
Ответ на: комментарий от XVilka

Гм, а почему в качестве основы выбрал bvi? Он же не умеет почти что ничего, даже подсветки вроде нет. Т.е. ты фактически с нуля хочешь его делать, не проще взять что-то более функциональное? Или попробовать написать несколько патчей для вима и набор скриптов (хотя вряд ли брам примет их в апстрим, потому что это не юникс-вэй)?

Я просто как-то не вижу смысла завязываться на архаичный bvi, проще уж вообще с нуля написать.

gaga
()
Ответ на: комментарий от gaga

Там от оригинала и так минимум остался :) Дальше будет меньше. Я последователь маленьких шагов к большому будущему :) Vim я смотрел, периодически смотрю в него. У него архитектура совершенно не подходит для бинарных данных - ядро оперирует строчками и прочее.

С нуля проще, но результаты будут в отдаленном будущем - здесь же, результаты сразу - маленькое изменение - результат. Периодически отправляю код и идею автору оригинального bvi, но мой редактор пошел по своей дороге.

Из более функционального - Okteta, если бы она была на чистом Qt - я бы взял ее, но она использует kdelibs, тяжеловато, если не использовать KDE, да и С++ я знаю весьма посредственно - мой удел чистый Си.

XVilka ★★★★★
() автор топика
5 января 2012 г.
Ответ на: комментарий от XVilka

исходя из реальных задач реверс-инжиниринга файлов.

Имеются в виду какие-то конкретные файлы?

frob ★★★★★
()
Ответ на: комментарий от geekless

Да, экспериментальный код умеет, я его пока не закоммиттил, сначала завершу рефакторинг - я весь код выношу в библиотеку, чтобы можно было легко ui сделать разных типов

XVilka ★★★★★
() автор топика
Ответ на: комментарий от frob

образы биосов, как реальные для записи на флеш, так и внутренние форматы всяких вендоров. Это самое частое.

XVilka ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.