Win32程式和控制台應用程式的專案互轉設定

2021-09-22 06:45:13 字數 1500 閱讀 8132

一般情況下,如果是windows程式,那麼winmain是入口函式,在vs2010中新建專案為「win32專案」

如果是dos控制台程式,那麼main是入口函式,在vs2010中新建專案為「win32控制台應用程式」

而如果入口函式指定不當,很顯然c語言執行時找不到配合函式,它就會報告錯誤。

修改設定適應你的需求

如果你需要的是windows程式:

1.選單中選擇 project->properties, 彈出property pages視窗

2.在左邊欄中依次選擇:configuration properties->c/c++->preprocessor,然後在右邊欄的preprocessor definitions對應的項中刪除_console, 新增_windows.

3.在左邊欄中依次選擇:configuration properties->linker->system,然後在右邊欄的subsystem對應的項改為windows(/subsystem:windows)

如果你需要的是控制台程式:

1.選單中選擇 project->properties, 彈出property pages視窗

2.在左邊欄中依次選擇:configuration properties->c/c++->preprocessor,然後在右邊欄的preprocessor definitions對應的項中刪除_windows, 新增_console.

3.在左邊欄中依次選擇:configuration properties->linker->system,然後在右邊欄的subsystem對應的項改為console(/subsystem:console)

如果本身**為win32專案,但是專案屬性設定為控制台應用程式,將提示下面的錯誤:

error lnk2019: 無法解析的外部符號 _winmain@16,該符號在函式 ___tmaincrtstartup 中被引用

msvcrtd.lib(crtexew.obj) : error lnk2019: 無法解析的外部符號 _winmain@16,該符號在函式 ___tmaincrtstartup 中被引用 

debug\jk.exe : fatal error lnk1120: 1 個無法解析的外部命令

error lnk2001: unresolved external symbol _winmain@16

debug/main.exe:fatal error lnk 1120:1 unresolved externals 

error executing link.exe;

參考文章:

lixuyuan,  error lnk2019: 無法解析的外部符號 _winmain

沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的框架所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如別人所關心你的。理想的騰飛與實現,沒有別人的支援與幫助,是萬萬不能的。

Win32控制台應用程式改變輸出顏色

一 用到的函式 獲得指向標準輸入,標準輸出和標準錯誤裝置的控制代碼 1.getstdhandle handle getstdhandle dword nstdhandle input,output,or error device value meaning std input handle stan...

如何隱藏win32控制台應用程式的視窗

有些時候,我們寫的win32控制台應用程式只是為了實現一些簡單的功能,並不希望出現乙個cmd視窗,此時 我們該怎麼做呢?下面是乙個簡單的方法,就是在程式開頭,引用標頭檔案之後加上這麼一句話,什麼意思呢?就是說,將程式指定為windows應用程式,並且指定其入口位址是main函式,為什麼要這麼做,因為...

win32視窗程式轉為控制台

windows支援兩種型別的程式,gui graphical user inte ce 和cui console user inte ce 他們是通過乙個叫載入器的東西進行載入,vs中只要修改聯結器 系統 子系統中的值,如果是gui則是 subsystem windows 如果是cui則是 subs...