[C++]コンソールとウィンドウを共存させる方法

stdioを使いつつGUIを表示したいようなときがある。
VC++では、リンカオプションとして/SUBSYSTEMがCONSOLEかWINDOWかを指定する。CONSOLEならmain(),WINDOWならWinMain()がエントリポイントになる。

WinMain()の引数にあるHINSTANCE hInstanceとint iCmdShowがウィンドウ作成に必要となる。しかしmain()がメインエントリの場合も、それらは以下のもので代用できる。

HINSTANCE hInstance = GetModuleHandle(0);
int iCmdShow = SW_SHOWDEFAULT;

これで、main()からウィンドウを作成できる。