Win32控制台程序直观上就是程序在一个类DOS的界面下运行,会跟用户进行简单的输入/输出交互,但无法做到更多的交互(或者是不方便做到更多的交互);而Win32程序则是微软平台下开发软件的一个广阔平台,利用Windows API来实现功能,而MFC是对Windows API的二次封装,理论上来说MFC可以实现的利用纯粹的Win32程序也可以实现。
Win32控制台程序与Win32程序在程序编译方面主要有两个不同:
①编译类型
Win32控制台程序的linker的/subsystem是CONSOLE,而Win32程序则是WINDOWS。
②入口函数
Win32控制台程序入口函数是Main,而Win32程序的入口函数则是WinMain。
一般情况下编译类型与入口函数是对应的,即CONSOLE-Main,WINDOWS-WinMain。但是这些配置可以手动地修改,达到不同的目的。
1、在Console程序中建立Win32窗口。
根据参考资料1,主要是在入口函数main的适当位置,添加原来的winmain函数,进行调用,使用程序在运行时与win32程序无异。
2、在Win32程序中调用控制台
根据参考资料2,利用AllocConsole函数调用控制台窗口,然后通过不同的句柄,对控制台进行写入、读取等操作。
参考资料:
2、
MFC调用win32窗口显示调试信息,使用AllocConsole 函数
http://blog.sina.com.cn/s/blog_4bf793ad0100mv2e.html