64,654
社区成员
发帖
与我相关
我的任务
分享
[Quote=引用 14 楼 hedy007 的回复:]
引用 5 楼 mlee79 的回复:
CUI GUI程序没啥区别, 就差一个字节, 你就做个GUI的, 如果需要控制台, attach/alloc 个控制台就是, 没这么麻烦...
盼说明
[/Quote]
比如这样, 如果你传递了命令行参数, 就以CUI运行, 否则以GUI运行....
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
if( lpCmdLine && lpCmdLine[0] ){
/* CUI */
char line[1024];
if( !AttachConsole( ATTACH_PARENT_PROCESS ) )
AllocConsole();
freopen( "CON:" , "r" , stdin );
freopen( "CON:" , "w" , stdout );
freopen( "CON:" , "w" , stderr );
printf( "Hello World!\n" );
fgets( line , 1024 -1 , stdin );
printf( "%s\n" , line );
return 0;
}
/* GUI */
HWND mainWnd = CreateWindow( TEXT("EDIT"), TEXT("demo"), WS_OVERLAPPEDWINDOW|ES_MULTILINE ,
CW_USEDEFAULT , CW_USEDEFAULT , 480 , 360 , NULL, NULL, NULL, NULL);
ShowWindow( mainWnd , SW_SHOW );
for ( MSG msg; IsWindow(mainWnd) && GetMessage( &msg , NULL , 0 , 0 ) ; )
{
TranslateMessage( &msg );
DispatchMessage ( &msg );
}
return 0;
}