Перенаправление вывода консольной программы под Win2k

Тема в разделе "WASM.BEGINNERS", создана пользователем da-007, 6 окт 2006.

  1. da-007

    da-007 New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    13
    Добрый день.

    Будьте добры, проконсультируйте по следующему вопросу: пишу консольную программу под Win32, работаем под Win2000. В чем фигня: не могу перенаправить результаты работы программы стандартными средствами (ну, т.е. programm.exe > file.log). Текст выводится стандартной printf функцией. Пробовал через WriteConsole - такие же результаты: файл создается, но нулевого размера =( Где грабли?
     
  2. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    используйте WriteFile заместо WriteConsole.
     
  3. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Должно работать.
     
  4. da-007

    da-007 New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    13
    censored:

    А какой файл открывать? Пробовал открыть "con" - не перенаправляется. Пробовал использовать хендлы от нуля до пяти (в досе вроде значение хендла=три - это экран было?) - все равно не получается =(

    IceStudent:

    Ну ей-богу... printf из msvcrt.dll... Али другой какой есть? На ассемблере пишу....
     
  5. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    GetStdHandle(STD_OUTPUT_HANDLE);
     
  6. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Кстати а что не работает-то? Текст не выводится вообще или выводится на экран?
     
  7. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    printf(stderr, "..."); ?
     
  8. da-007

    da-007 New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    13
    YES! =) Спасибо, ребят! =) Связка "GetStdHandle" - "_lwrite" (ну... это ж и есть WriteFile =) четко отрабатывает, спасибо =)
     
  9. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Код (Text):
    1. format PE CONSOLE
    2. entry __start
    3.  
    4. include '%fasminc%\win32a.inc'
    5.  
    6. ;<< import
    7. data import
    8.     library msvcrt,'msvcrt.dll'
    9.  
    10.     import msvcrt,printf,'printf'
    11. end data
    12. ;>>
    13.  
    14. ; data
    15. szTox       db 'MessageBoxA',0
    16.  
    17. align 16
    18. __start:
    19.     cinvoke printf,szTox
    20.     xor  eax,eax
    21.     ret