#pragma comment( linker, "/subsystem:\"console\" /entry:\"WinMainCRTStartup\"")編程
方法只要
在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程序中windows
http://blog.csdn.net/xhhjin/article/details/6658941函數