Here is a quick example to use standart C streams with Masm :
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\msvcrt.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\msvcrt.lib
include Streams.inc
.data
msg db 'stdout = %X',0
.data?
stdout dd ?
stdin dd ?
stderr dd ?
.code
start:
call crt___p__iob
mov stdin,eax ; #define stdin (&__iob_func()[0])
add eax,SIZEOF(FILE)
mov stdout,eax ; #define stdout (&__iob_func()[1])
add eax,SIZEOF(FILE)
mov stderr,eax ; #define stderr (&__iob_func()[2])
invoke crt_fprintf,stdout,ADDR msg,stdout
invoke ExitProcess,0
END start
__iob_func is redirected to __p__iob
[attachment deleted by admin]