關於Console程式和win32程式的程式入口

2021-07-10 13:24:18 字數 893 閱讀 9095

作業系統裝載應用程式後,做完初始化工作就轉到程式的入口點執行。程式的預設入口點由連線程式設定, 不同的聯結器選擇的入口函式也不盡相同。在vc++下,聯結器對控制台程式設定的入口函式是 maincrtstartup,maincrtstartup 再呼叫main 函式;對圖形使用者介面(gui)程式設定的入口函式是 winmaincrtstartup,winmaincrtstartup 呼叫你自己寫的 winmain 函式。具體設定哪個入口點是由聯結器的「/subsystem:」選項確定的,它告訴作業系統如何執行編譯生成的.exe檔案。可以指定四種方式:console|windows|native|posix。如果這個選項引數的值為 windows,則表示該應用程式執行時不需要控制台,有關聯結器引數選項的詳細說明請參考 msdn 庫。

以下四種組合,可以實現console和windows模式的混合,可以達到不彈出dos視窗的效果,也可以達到在windows程式中向控制台輸出printf資訊的目的。 #pragma comment( linker, "/subsystem:windows /entry:winmaincrtstartup" ) #pragma comment( linker, "/subsystem:windows /entry:maincrtstartup" ) #pragma comment( linker, "/subsystem:console /entry:maincrtstartup" ) #pragma comment( linker, "/subsystem:console /entry:winmaincrtstartup" )

int apientry winmain(hinstance hinstance, hinstance hprevinstance, lpstr      lpcmdline, int        ncmdshow)

int main(void)

Console程式和Dos程式的差別

主要有兩方面差別 製造方式 在windows環境下得dos box中,或是在windows版本的各種c 編譯器套件的整合環境 ide 中,利用windows編譯器.聯結器做出來的程式,都是所謂的win32程式.如果程式是以main為進入點,呼叫c runtime函式和不牽扯gui的win32 api...

Console和DOS程式的區別

不少人把dos程式和console陳旭混為一談,這是不對的。以下是各方面的比較。編寫方式 在windows環境下的dos box中,或是windows版本的各種c 編譯器套件的整合開發環境 ide 中,利用windows編譯器 聯結器做出來的程式,都是所謂win32程式。如果程式時已main為進入點...

01 windows程式和console程式區別

一 windows程式和控制台程式的區別 1.入口點不同 window程式 int stdcall wwinmain hinstance hinstance,hinstance hprevinstance,lpwstr lpcmdline,int ncmdshow 控制台程式 int main 2....