Вызов из Ассемблера функций Microsoft Excel

Тема в разделе "WASM.BEGINNERS", создана пользователем offset, 24 окт 2006.

  1. offset

    offset New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2006
    Сообщения:
    9
    Подскажите, кто знает, какой самый простой способ вызвать из-под проги на Асме функции Microsoft Excel. Необходима возможность править таблицы программным методом из-под отдельного проекта на Асме. И если это возможно, где можно почитать?
    Смотрел HELP на Visual Basic Excel и ничего не нашел по связи с Асмом...
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    На сайте были статьи по использованию COM на асме.

    Когда-то давно написал функцию - оболочку на масме, по номеру функции.
    Код (Text):
    1. ;функция вызова COM метода по номеру от 0
    2. ;[EBP+14H] - параметр ...
    3. ;[EBP+10H] - параметр 1
    4. ;[EBP+0CH] - указатель на объект
    5. ;[EBP+08H] - номер метода
    6. CALL_COM PROC
    7.     SUB ESP, 1024*10 ;резервируем под стек других функций 10 кбайт, хотя может и нехватить
    8.                                      ;в этом случае ошибка!!!
    9.     PUSH DWORD PTR SIGNATURE
    10.     PUSH DWORD PTR SIGNATURE+4
    11.     PUSH DWORD PTR SIGNATURE+8
    12.     MOV EAX, DWORD PTR [ESP+12+1024*10]
    13.     PUSH EAX
    14.     ADD ESP, 1024*10+20
    15. ;----------------------------------------
    16. ;вызываемая функция
    17.     MOV EDI, DWORD PTR [ESP]
    18.     ADD ESP, 4
    19.     MOV EAX, DWORD PTR [ESP]
    20.     MOV EAX, DWORD PTR [EAX]
    21.     CALL DWORD PTR [EAX+EDI*4]
    22.     PUSH EAX
    23. ;----------------------------------------
    24.     MOV EDX, ESP
    25.     SUB EDX, 1024*10
    26. BEG_LOOK_FOR_SIGN:
    27.     MOV EAX, DWORD PTR SIGNATURE
    28. LOOK_FOR_SIGN:
    29.     CMP DWORD PTR [EDX], EAX
    30.     JE YES_FIND
    31.     SUB EDX, 4
    32.     JMP LOOK_FOR_SIGN
    33. YES_FIND:
    34.     MOV EAX, DWORD PTR SIGNATURE+4
    35.     SUB EDX, 4
    36.     CMP DWORD PTR [EDX], EAX
    37.     JNE BEG_LOOK_FOR_SIGN
    38.     MOV EAX, DWORD PTR SIGNATURE+8
    39.     SUB EDX, 4
    40.     CMP DWORD PTR [EDX], EAX
    41.     JNE BEG_LOOK_FOR_SIGN
    42.     SUB EDX, 4
    43.     POP EAX
    44.     JMP DWORD PTR [EDX]
    45.     ALIGN 4
    46.     SIGNATURE DB 'SIG_CAL_COM', 0
    47. CALL_COM ENDP
    Стек после вызова овобождаешь сам.
     
  3. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев
    Надо было еще в "Книге о вкусной и здоровой пище" глянуть, мало-ли...

    На сайте iczelion-а раньше точно были сорцы как через ком-методы из ассемблера рулить экселем.
     
  4. offset

    offset New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2006
    Сообщения:
    9
    Спасиба за подсказку....