They have essential differences: 1: A 16 DoS ProgramOne is a standard 32 windows application. the former is still subject to 64 kB memory segments, and the latter uses 4 GB memory address space without worry. they are originally run on different operating systems. don't confuse them. the DOS program can run on Windows because NTVDM exists. however, if you put the console program generated by VC under DOS, you will only get it !? This program cannot be run in DOS mode.2: If you write it in a standard library, CodeThere should be no big difference. however, the method of calling the database during execution is usually days away. the former simulates an execution environment through the API, and the latter directly calls the Win32 API. 3: The program written in TC can indeed call the interrupt, but this interrupt is not directly executed. provided by NTVDM. in the NT world. ring3 is unlikely to be interrupted by direct calls. 4: vc6 (earlier versions do not know) cannot write DOS programs, but can only write console programs. Note that this is only a Win32 program that uses the standard console input and output. the console program can also pop up a window or have a message loop, and the window program can also have a console.