The MASM32 components will conflict with the CRT so you cannot reasonably use masm32rt or the print macro.
;include \masm32\include\masm32rt.inc
.686
.model flat,stdcall
printf PROTO C :VARARG
;MasmProggie PROTO C :SDWORD, :SDWORD ; exports euclid to C
.data
fmt db "This is assembler", 10, 0
.code
MasmProggie proc C x:SDWORD, y:SDWORD
;print "This is assembler", 13, 10
invoke printf, ADDR fmt
mov eax, x
mul y
ret ; return value already in eax
MasmProggie endp
end ;MasmProggie
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int MasmProggie(int, int);
int main(int argc, char* argv[])
{
int i=10; //just for fun
printf("Arg count=%d\n", argc);
printf("The product of argct and 10: %d\n", MasmProggie(i, argc));
getch();
return 0;
}
set file1="MasmProggie"
set path=\masm32\bin;%PATH%
ml /c /coff %file1%.asm
pause
set file2="test"
set PATH=C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;%PATH%
set INCLUDE=C:\Program Files\Microsoft SDK\include;C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;%INCLUDE%
set LIB=C:\Program Files\Microsoft SDK\Lib;C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;%LIB%
cl /W4 /FA %file2%.c %file1%.obj
pause