Нет консольного вывода из программы, собранной с MASM на win32 - PullRequest
2 голосов
/ 30 декабря 2011

Я использую несколько примеров MASM32 (с сайта www.masm32.com) и замечаю, что вывод консоли пуст в моем окне командной строки (программа компилируется, связывается и запускается, но без вывода.

    .486                                    ; create 32 bit code
    .model flat, stdcall                    ; 32 bit memory model
    option casemap :none                    ; case sensitive

    include \masm32\include\windows.inc     ; always first
    include \masm32\macros\macros.asm       ; MASM support macros
    include \masm32\include\masm32.inc
    include \masm32\include\gdi32.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\gdi32.lib
    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib

    .code                       ; Tell MASM where the code starts


start:                          ; The CODE entry point to the program

    print chr$("Hey, this actually works.",13,10)
    exit


end start                       ; Tell MASM where the program ends

1 Ответ

3 голосов
/ 30 декабря 2011

Когда вы связываете PE-программу для Win32, вы можете пометить необходимую подсистему как «GUI» или «Console». Если вы связали это как программу с графическим интерфейсом, то при запуске EXE из командной строки Windows не присоединит консоль к окну, в которое вы вводите. Это похоже на симптомы, которые вы описали.

Убедитесь, что вы связываете свой исполняемый файл с флагом подсистемы "console".

...