这篇文章的主要内容是介绍怎样实现在codeblocks下编译出来的exe文件,双击之后不显示黑框直接执行的问题.
困扰我很久了,最后却发现很简单.
先说明一下需求:
我希望在一段代码里通过WinExec函数调用一个update.exe程序,但每次update.exe被调用时却发现总是会有黑框弹出来.
我的需求就是把黑框隐去.
在这里举例说明该怎么做:
----
update的源代码:
-------
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
WinExec("calc.exe ",SW_HIDE);
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.
好吧,我承认这篇文章写得很啰嗦,也没有什么理论解释,只是一个小技巧,
希望可以帮到别人,自己做一下记录以后碰上这样的问题就不用纠结了.:)