Having such a simple `assembly` `Win 32` program:

```
.386
.model flat, stdcall
option casemap :none

EXTERN printf :PROC ; declare printf

.data
    HelloWorld db "Hello Wolrd!:-)", 0

.code
start:
  sub esp, 4
  push offset HelloWorld
  call printf
  add esp, 4
  ret
end start

```

I can successfully compile it by just:

```
ml.exe /c HelloWorld.asm

```

BUT have a problem linking it. When I use:

```
link HelloWorld.obj libcmt.lib

```

I'm getting an error:

```
unresolved external symbol _main called in _mainCRTStartup

```

What have I change/correct to to successfully link the program to run it?

P.S.

Please don't tell me to use just `nasm`. I'd like to use `ml` & `link` from my MSVC.