20130417

_tmain與main,winMain,wmain

1. main():WINDOWS的控制檯程序(32BIT)或DOS程序(16BIT)入口函數
     WinMain():是WINDOWS的GUI程序入口函數

2. _tmain和_tWinMain的定義在<tchar.h>

#ifdef _UNICODE

#define _tmain      wmain
#define _tWinMain   wWinMain

#else   /* ndef _UNICODE */

#define _tmain      main
#define _tWinMain   WinMain

#endif

如果是UNICODE則主函數是wmain或wWinMain,否則是main或WinMain

UNREFERENCED_PARAMETER的作用

這個宏在 winnt.h 中定義如下:

#define UNREFERENCED_PARAMETER(P) (P)

換句話說 UNREFERENCED_PARAMETER 展開傳遞的參數或表達式。

我們在程序開頭申明

int i;

之後就再也沒使用過i,在最高級別的警告 Level 4(/W4)進行編譯,胡會出現

“warning C4100: ''i'' : unreferenced formal parameter.”

UNREFERENCED_PARAMETER是對參數P的“假使用”,以達到避免編譯器關於未引用參數的警告。

AllocConsole()和AttachConsole()

一般來講GUI程序不能使用STDIN和STDOUT,但是有時有些特殊需要,希望GUI程序也有控制檯,如:一個程序,既可以以GUI方式運行,又可以如果用戶在控制檯裏打程序名的話,就以控制檯程序的方式運行。
通過AllocConsole() 和 AttachConsole() 這兩個WIN API就能實現上面的需求。這兩個API分別是在GUI(MFC)程序中分配一個控制檯和將程序附着到一個控制檯上。

用法舉例:

AttachConsole(ATTACH_PARENT_PROCESS); // 將當前程序附着到父進程上,因爲是從控制檯啓動的,所以當前程序的父進程就是那個控制檯。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章