| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > Как выглядит сишный класс в памяти? |
| Автор: tripsin 14.2.2006, 20:40 |
| Мне надо ручками сделать в памяти экземпляр С-шного класса и передать ссылку на него, как параметр библиотечной функции. |
| Автор: maxim1000 15.2.2006, 01:33 |
| можно просто сделать объект на C++ и посмотреть на него в памяти а вообще, если не ошибаюсь, это зависит от компилятора... |
| Автор: tripsin 15.2.2006, 05:24 |
| Класс надо сунуть в виндовую API-фунцию, поэтому выглядеть он должен одинаково, независимо от компилятора. Может различаться реализация методов класса, но мне это не важно. Я так понял, что в классе имеются только указатели на функции, реализующие методы, а сами реализации лежат отдельно. |
| Автор: maxim1000 15.2.2006, 12:18 |
| а что за функция? |
| Автор: oleg1973 15.2.2006, 12:58 |
| наверно класс выглядит примерно как интерфейс обьекта , повторяю примерно в fasm есть пример работы с СОМ обьектами и там есть сам обьект в принципе получается список адресов/методов которые можно вызывать |
| Автор: tripsin 15.2.2006, 19:06 |
| Я хотел попользовать GDI+. C получением списка кодеков и их идентификаторов я разобрался. Возникла проблема с преобразованием HBITMAP в объект GDI+ (кажется GdipCreateBitmapFromHBITMAP из gdiplusflat.h). Функция требует объект GBitmap. Когда я на дурака выделил пару метров памяти, обнулил и дал на нее ссылку, прога вылетела с ошибкой куда-то в нулевые адреса. Скорее всего вызывался кнструктор класса, и, т.к. по переданному указателю были одни нули, то вызов туда и пошел. Так вот надо определиться со структурой стандартного класса и поставить адреса своих процедур. А может я слишком загнался |