方法只要 在cpp文件头部加入一行: #pragma comment( linker, "/subsystem:\"console\" /entry:\"WinMainCRTStartup\"") //以console程序样式,并且制定winmain的入口. 此位置在系统.h的后面。如放在:stdafx.h的后面就可以。 不管是vc6还是.net都可以。 如果link无效,需要替换WinMainCRTStartup 入口函数有: mainCRTStartup wmainCRTStartup wWinMainCRTStartup WinMainCRTStartup --------------------- 在vc2005中的mfc和sdk 程序的入口不同。mfc的入口为WinMainCRTStartup。sdk程序的入口为:wWinMainCRTStartup。 vc6的入口都是WinMainCRTStartup。 以上请大家注意。 在使用printf语句之前记得把stdio.h的头文件包含进去.就可以.实现这个有趣的程序.其实在调试一些大型的win32 gui程序的时候这个dos窗口相当的有用. 反过来.你在console工程中加入 #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 设置console的入口地址和gui样式. dos窗口就消失了.之会显示像 MessageBox之类的gui窗体. 这些link选项最后都会填写到PE头文件的Subsystem节中里面只需要把03(console模式,WINDOWS_CUI=3)该为02(WINDOWS_GUI=2).简单点使用修改pe头文件的工具直接修改就可以使gui程序中的printf函数生效. 一般放在#include "stdafx.h"的后面,才有效 sdk: #pragma comment( linker, "/subsystem:\"console\" /entry:\"wWinMainCRTStartup\"") #pragma comment( linker, "/subsystem:console /entry:wWinMainCRTStartup") mfc: #pragma comment( linker, "/subsystem:\"console\" /entry:\"WinMainCRTStartup\"") #pragma comment( linker, "/subsystem:console /entry:WinMainCRTStartup") 实际编程上面的应用的sdk程序中 |
|
来自: firefox_zyw > 《待分类1》