Не работает GetStdHandle

Тема в разделе "WASM.BEGINNERS", создана пользователем Wert, 30 июн 2007.

  1. Wert

    Wert New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2007
    Сообщения:
    4
    Доброго времени суток , форумчане!
    Беда такая :
    Есть до боли простой код, который отлично компилируется. Однако при проверке работоспособности под OllyDbg не функционирует.
    жму F8 в стек -11 влазит. происходит вызов GetStdHandle , но в eax дескриптора не остается.
    Если просто запустить, то в консоле тоже чисто...
    использую tasm32
    ExitProcess работает
    Код (Text):
    1. .386
    2. .model flat , stdcall
    3. option casemap: none
    4. include \masm32\include\windows.inc
    5. include \masm32\include\kernel32.inc
    6. includelib \masm32\lib\kernel32.lib
    7. .data
    8. stdout    DWORD ?
    9. msg       BYTE  "Hello world", 0dh,0ah
    10. cWritten  DWORD ?
    11. .code
    12. start:
    13. Invoke GetStdHandle, STD_OUTPUT_HANDLE 
    14. mov stdout, eax
    15. Invoke WriteConsoleA, stdout, ADDR msg, sizeof msg, ADDR  cWritten, 0
    16. Invoke ExitProcess, 0
    17. end start
    На всякий случай прикрепил *.exe
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    ты компилируешь приложение как консольное?
    а что в eax?
     
  3. Wert

    Wert New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2007
    Сообщения:
    4
    n0name
    Ура ! проблема не в виндах. Тормоз я.
    конечно я не догадался, что нужно компилировать как консольное)
    А в еах хендл на стандартное устройство вывода.
    Вот. Огромное спасибо!
    офф. я б плюс поставил. только судя по всему тут некуда...однако первый день на форуме.
    Еще раз спасибо!