Re[2]: Проект сериализации - 2 [просьба высказаться]
От: adontz Грузия http://adontz.wordpress.com/
Дата: 08.01.05 22:56
Оценка:
Здравствуйте, SleepyDrago, Вы писали:

SD>Осталось отфильтровать 99.999% типов из pdb и все будет путем


Это тоже будет проходить автоматически. Например далем так

#define DECLARE_SERIALIZABLE enum {__serializable};

class A
 {
  DECLARE_SERIALIZABLE
 }


И потом автоматически отсеиваем классы у которых есть enum с именем __serializable. Всё просто. Можно напридумывать разные такие нейтральные (не меняющие поведение классов) маркеры для генерации разных вещей по уже имеющейся информации о классе.

SD>Насколько я понял ее принцип работы похож на tracewpp из Platform Sdk.

SD>те через DIA получаем все содержимое pdb.

Да.

SD>Вопрос по интерфейсу утилиты: надо спрашивать какой pdb брать тк если в проекте несколько модулей и они все кладут свои бинарники и pdb в один каталог (например "bin") то что?


Это только первая версия. На самом деле программе будет скармливаться файл проекта (*.vcproj) и она уже возьмёт только нужные файлы. Кстати намечается VS Add-in который будет подправлять свойства проекта необходимые для работы утилиты.

SD>Взгляните на 44ю презентацию на КРИ 2004

SD>там для проблемы большого количества данных и модификации схемы использован достаточно специфичный подход. Схема на внешнем языке тк данные важнее чем код.

Моя основная цель это сократить объём кодирования. Ввод внешнего языка и вообще какого-либо ручного описания чего-либо не подразумевается

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


Я собирался не данные для работы с кодом генерировать, а сам код. Так быстрее будет работать и проще использовать. Тем более в контексте Си++, где есть перегруженные функции.

SD>И еще. всегда нужен путь для тех кто может "сделать все сам" а не черный ящик.


Безусловно. Более того, я хочу сделать аналогичную вешь для gcc, если получится конечно. Будут модули сбора информации и модули генерации чего-то там по этой информации. Как это организовать всё я пока не очень придумал.
A journey of a thousand miles must begin with a single step © Lau Tsu