Как написать свой интерпретатор?

Тема в разделе "WASM.BEGINNERS", создана пользователем searkand, 7 янв 2011.

  1. searkand

    searkand New Member

    Публикаций:
    0
    Регистрация:
    14 окт 2010
    Сообщения:
    27
    как бы обьяснить то. короче чтобы иметь доступ к устройствам компьютера? или на пример просто словить нажатие клавиши?
     
  2. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    searkand
    или делайте интерфейсы к чему хотите, или делайте компилируемые части, или и то и другое. решение зависит от вашего выбора (и подробной постановки задачи)
     
  3. searkand

    searkand New Member

    Публикаций:
    0
    Регистрация:
    14 окт 2010
    Сообщения:
    27
    Прошу пожалуйста по подробнее про интерфейсы.
     
  4. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    например

    int
    call_dll_foo(char* dll_name, char* foo_name, int cval, void** sval){
    int r = 1;
    FARPROC foo;
    HMODULE dll = LoadLibrary(dll_name);
    if(dll == NULL)
    return 0;

    foo = GetProcAddress(dll, foo_name);
    if(foo == NULL)
    return 0;

    __asm{
    push esi
    }

    __try{
    __asm{
    mov esi,esp
    mov ecx,cval
    mov eax,sval
    }
    m_b:
    __asm{
    dec ecx
    jc short m_e
    push [eax]
    add eax, sizeof(void*)
    jmp short m_b
    }
    m_e:
    __asm{
    call foo
    mov esp,esi
    }
    }__except(EXCEPTION_EXECUTE_HANDLER){
    r = 0;
    }

    __asm{
    pop esi
    }

    FreeLibrary(dll); // лучше так не делать, а гдето накапливать эти хэндлы

    return r;
    }
     
  5. searkand

    searkand New Member

    Публикаций:
    0
    Регистрация:
    14 окт 2010
    Сообщения:
    27
    Всем привет! Спасибо тем кто помог мне в этом топике. Я наконец-то написал свою виртуальную машину(точнее я написал её 2 месяца назад). Прошу оценить её. Учебник в архиве. Нужно распаковать в директорию не содержащюю пробелы и русские буквы
    <a href="http://www.gamedev.ru/files/?id=66211">Виртуальная машина Medusa</a>