1,在程序开始时调用FreeConsole();(windows.h)
2,在VC开发环境的控制台还是会有的,因为那是VC调的,不过你的程序不会输出到那个控制台罢了
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/freeconsole.asp)在工程属性里面分别设置linker->system->SubSystem为Windows (/SUBSYSTEM:WINDOWS),linker->advanced->Entry Point为mainCRTStartup
3,CreateProcess时设置隐藏,可设置STARTUPINFO的dwFlags,代码如下:
STARTUPINFO si;
ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);
si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
si.lpReserved = NULL;
si.cbReserved2 = 0;
si.lpReserved2 = NULL;
char cmdLine[] = "c:\\test.exe ";
PROCESS_INFORMATION ProcessInformation;
ZeroMemory(&ProcessInformation,sizeof(ProcessInformation));
int ret=CreateProcess(NULL,cmdLine,NULL,NULL,1,CREATE_NEW_CONSOLE,NULL,NULL,&si,&ProcessInformation);
感谢:http://blog.csdn.net/vbskj/article/details/5049941