混沌雑記帳






ウインドウの出ない一発アプリの作りかたメモ。
コンソールアプリでそのまま作るとコンソール出ちゃうし
Win32プロジェクトでウインドウ作らなきゃいいけど色々でかくなる。

Win32コンソールで作る。
 int _tmain(int argc, _TCHAR* argv[])
を以下に入れ替え。
 int WINAPI _tWinMain(HINSTANCE hinst, HINSTANCE, PTSTR pszCmdLine, int nCmdShow)
stdafx.hを開いて
 #inlude <windows.h>
を追加。逆に使わないなら以下削除。
 #include <stdio.h>
プロジェクトのプロパティを開いて
 リンカ→システム→サブシステムをWindows(/SUBSYSTEM:WINDOWS)
 C/C++→プリプロセッサのプリプロセッサ定義にある_CONSOLEを_WINDOWS
全構成変えなきゃなので、構成を「全ての構成」にしてからやると楽。

で、argc/argvが使えなくなるのでpszCmdLineから分解するのをでっち上げ。
自身のexe名は入ってないので必要なら別にやらないと駄目。
 int argc = 0;
 TCHAR *argv[8];
 if (_tcslen(pszCmdLine) > 0) {
  TCHAR *next;
  TCHAR *token = _tcstok_s(pszCmdLine, _T(" "), &next);
  while (token != NULL) {
   argv[argc++] = token;
   if (argc > 8) break;
   token = _tcstok_s(NULL, _T(" "), &next);
  };
 }
8要素までで固定してるのはただの手抜き。
個数が必要なら十分な長さにするか、argvを動的確保して可変長対応とか。

後は普通にいける。
まあ結局コンソールよりは大きくなるんだけども。
それでもコード量はコンソールと大差なくてすっきり。
[116] (2008/10/09(Thu) 18:51:43)

投稿パス:


名前:   題名:


パスワード:  

一発拡大 >> << パーティーション
Copyright © 混沌雑記帳. All Rights Reserved. [PHPウェブログシステム3 FLEUGELzネットマニア + 独自改造]