COM технология в Fasm

Discussion in 'WASM.WIN32' started by Sergio_Begin, Oct 19, 2006.

  1. Sergio_Begin

    Sergio_Begin New Member

    Blog Posts:
    0
    Знающие, помогите...
    Мне нужно создать Dll с использованием com технологий.
    использование COM в fasm очень легкое, а вот создание?
    Помогите примером...
    Заранее спасибо
     
  2. masquer

    masquer wasm.ru

    Blog Posts:
    0
    Примером? :) На масме это 15 кб кода и с 50 кб инклудов, хоший будет пример.
    А почему тема в бегиннерсах? Это и не каждый адвансед напишет :))
     
  3. Sergio_Begin

    Sergio_Begin New Member

    Blog Posts:
    0
    А я в Fasm хочу - больно это красиво получается...
    И вообще решил на него переходить
    А куда еще писать...
     
  4. masquer

    masquer wasm.ru

    Blog Posts:
    0
    для начала поищи на форуме фасма, может уже есть готовое, если нет, бери код для масма (есть в пакете масм32) и творчески переделывай, заодно изучишь как оно все работает, при этом можно еще запастись книгой типа Inside OLE 2, где про потроха ком рассказывается.

    в WIN32, очевидно, надо было, но уже поздно, модераторы переместят если надо будет
     
  5. Sergio_Begin

    Sergio_Begin New Member

    Blog Posts:
    0
    А насчет примера:
    - создание структуры vtable
    - вывод из создателя...
    Я делал так:
    Code (Text):
    1. interface IAniThing,\
    2.              AniProc
    3.              ...
    4.  
    5. proc RealAniProc
    6. ...
    7. endp
    8.  
    9. proc AniCreator
    10.    invoke LocalAlloc, LMEM_FIXED, ...
    11.    mov  [eax+IAniThing#.#AniProc]
    12. endp
    Говорит - ошибка...
     
  6. asmfan

    asmfan New Member

    Blog Posts:
    0
    Code (Text):
    1. mov  [eax+IAniThing#.#AniProc]
    попытка переписать cominvk или comcall из стандартных инклюдов?
     
  7. asmfan

    asmfan New Member

    Blog Posts:
    0
    Думается, по дефолту, должен IUnknown наследоваться...
     
  8. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Sergio_Begin
    Почитай лучше статьи о СОМ, особенно о том, как он реализуется на чистом си. Там весьма близко к асму.
     
  9. afw2004

    afw2004 New Member

    Blog Posts:
    0
    COM DLL-ка на фасме. Только не регистрируется сама (нужно вручную). Для теста я поместил контрол на HTML страничку.

    Также выкладываю мои inc файлы (не пользуюсь стандартным com интерфейсом фасма - невдалый он какой-то).
     
  10. afw2004

    afw2004 New Member

    Blog Posts:
    0
    инклуды
     
  11. Sergio_Begin

    Sergio_Begin New Member

    Blog Posts:
    0
    2asmfan:
    Ну, этож для примера, в реализации все будет
    Кстати, я зарегестрировался ;))
     
  12. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    В том-то и дело, это нарушение стандарта. Есть некоторый необходимый минимум для СОМ.
     
  13. opennetworks

    opennetworks New Member

    Blog Posts:
    0
    Почему нет SelfRegister для DLL Register Server?

    Кому охота в реестре голыми руками копаться?
     
  14. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Почему нет? DllRegisterServer.
     
  15. opennetworks

    opennetworks New Member

    Blog Posts:
    0
    Вы не поняли....

    Почему в CMyApp.dll нет экспорта
    DllGetClassObject, DllCanUnloadNow,DllRegisterServer,DllUnregisterServer

    с ними удобнее!
     
  16. opennetworks

    opennetworks New Member

    Blog Posts:
    0
    ... вопрос не в тему

    А можно ли на FASM реализовать собственный формат файлов?

    (там же есть PE GUI, PE Console и тд...);

    Только не прямым кодом типа

    Code (Text):
    1.  PUSH    CS
    2.  POP     DS
    3.  MOV     DX,000E
    4.  MOV     AH,09
    5.  INT     21
    6.  MOV     AX,4C01
    7.  INT     21
    8.  PUSH    SP
    9.  DB      68
    10.  DB      69
    11.  JNB     0033
    12.  JO      0087
    13.  DB      6F
    14.  DB      67
    15.  JB      007A
    16.  DB      6D
    17.  AND     [BP+DI+61],AH
    18.  DB      6E
    19.  DB      6E
    20.  DB      6F
     
  17. afw2004

    afw2004 New Member

    Blog Posts:
    0
    Потому что не доделал! Что тут непонятного?

    Выкладываю свои попытки собрать фасмом VxD. (Нерабочий вариант, рабочего пока нет).
     
  18. opennetworks

    opennetworks New Member

    Blog Posts:
    0
    это прямой код:dntknw:


    ну, почти.
     
  19. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    opennetworks
    format binary в помощь.
     
  20. afw2004

    afw2004 New Member

    Blog Posts:
    0
    opennetworks

    Что значит "прямой код"? Что значит "не прямой код"? (Не силен в терминологии)