Здравствуйте, 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, если получится конечно. Будут модули сбора информации и модули генерации чего-то там по этой информации. Как это организовать всё я пока не очень придумал.