這篇文章的主要內容是介紹怎樣實如今codeblocks下編譯出來的exe文件,雙擊以後不顯示黑框直接執行的問題.windows
困擾我好久了,最後卻發現很簡單.app
先說明一下需求:函數
我但願在一段代碼裏經過WinExec函數調用一個update.exe程序,但每次update.exe被調用時卻發現老是會有黑框彈出來.ui
個人需求就是把黑框隱去..net
在這裏舉例說明該怎麼作:code
----進程
update的源代碼:get
-------cmd
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
WinExec("calc.exe ",SW_HIDE);it
Sleep(2000);
WinExec("cmd.exe /c taskkill /IM calc.exe ",SW_HIDE);
return 0;
}
------
update源代碼很簡單,首先調用計算器程序(calc.exe),而後等待2s,而後經過taskkill 殺掉這個進程.
首先,彈出console窗口的狀況是這樣的:
打開code::blocks, 新建一個C文件,把代碼粘進去.
快捷鍵F9(build and run):
出現如下狀況:
能夠看到一個console黑框和計算器窗口.
找到生成的test.exe程序,直接雙擊,效果是同樣的,一樣有黑框.
那麼怎樣才能避免console黑框的產生呢?
其實很簡單:
首先,打開codeblocks以後新建一個project,分類能夠選擇Console application.
而後,把上邊的代碼拷到main.c 文件裏.
以後先不要急着編譯運行(其實如今直接編譯運行的話,仍是會有console窗口的),選擇project->Properties->Build targets
選擇Release 下Type選項爲GUI application
而後點OK,
在編譯運行以前,Build target選擇Release
這樣編譯出來的exe可執行文件雙擊的時候就不會彈出console 窗口了.Enjoy it.
好吧,我認可這篇文章寫得很囉嗦,也沒有什麼理論解釋,只是一個小技巧,
但願能夠幫到別人,本身作一下記錄之後碰上這樣的問題就不用糾結了.:)