Генератор классов

Тема в разделе "WASM.HEAP", создана пользователем cresta, 14 сен 2007.

  1. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Существует в природе утилита, которая могла бы взять некий TypeLib/InProcServer и соорудить из его интерфейсов с++ классы/хидеры, пригодные для работы с этой либой?
    Что-то по примеру асмового ComView.
    OleView.exe из пакета SDK показывает все интерфейсы, методы, енумы, и т.д. но обработать их вручную - целый год уйдёт на это.
     
  2. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    cresta
    Borland c++ builder.
    Как и Delphi, он работает с TLB, IPServ и на ходу генерит классы.
     
  3. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Borland c++ builder.

    Из пушки по воробьям ?
    А нет ничего попроще? И чтобы потом можно было из vc++ 7.0 работать, не прибегая к поиску кучи разного рода хидеров?
     
  4. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    cresta
    Я только им пользовался...

    Почему? Там отлично все реализовано... правда не работает:)
    После вскрытия TLB надо ручками править. А по-другому никак. Там создается скелет библиотеки с сылками на адреса процедур. Сами процедуры не вскрываются (CBuilder писался программистами, а не экстрасенсами).
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Так я тоже могу :) А хочется чтобы ничего не править, и сразу работало :)
    Процедуры вскрывать не надо. Достаточно наличия в классе метода-переходника, который вызовет метод интерфейса из dll.
     
  6. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    cresta
    См. midl.exe не поможет? Или #pragma import?
     
  7. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Этот midl.exe - в гробе я его видал:dntknw:
    Даю ему файл от OleView - сплошные "expecting a type specification near bla-bla-bla".
    Перенес все енумы в начало файла - потом пошли ошибки со структурами, после которых midl упёрся в строку interface IDataObject : IUnknown. Пишет "redefinition : IDataObject".
    Во всём файле только одно слово IDataObject, где он увидел redefinition - непонятно.

    Был бы файл небольшой - сам бы сделал, так он около 200 кБ, больше 4 тыс строк:dntknw: