2011年3月10日木曜日

Win32コンソールアプリケーションをランタイム不要にする方法 - Visual C++

Visual C++
○2010 Express
コンソール アプリケーションは、自動処理を行う時に便利です。
そして、C++の標準ライブラリだけを使って作っている場合は、ランタイムライブラリ(= DLLファイル)を不要にする事が出来ます。

o Visual C++ 2010 Expressで確認しました。
o 「Win32 プロジェクト」でランタイムライブラリを不要にする手順も、同様です。
o ランタイムライブラリを不要にする事には、長所と短所があります。詳しくは、下のメモ欄をどうぞ。


**** 手順
o 以下、プロジェクトを作る時に「Win32 コンソール アプリケーション」を選んだ時の手順です。

o プロジェクトを開きます。
o 左に出てくる「ソリューションエクスプローラー」画面で、プロジェクト名を右クリックします。
o 選択肢が出てきますので、一番下にある「プロパティ(R)」
o 設定画面が出てきますので、次のように操作します。
    + 左上にある「構成(C)」の選択欄を、完成時に選択するものに合わせます。
        + 通常は「Release」かと思います。
    + 左側のメニューから「構成プロパティ」-「C/C++」-「コード生成」
    + 右側の大きな欄で、「ランタイム ライブラリ」の文字をクリックします。
    + その行の一番右に表示される、「V」字の印をクリックします。
    + 「マルチスレッド (/MT)」を選択します。
    + そして、設定画面の右下にある「OK」ボタンを押します。


**** メモ
o ランタイムライブラリ(= DLLファイル)を不要にすると、実行ファイル本体のサイズが大きくなります。
    + 10KBの実行ファイルが、50KBくらいになりました。
    + その代わり、ランタイムライブラリの再配布が不要になる利点もあります。

** ランタイムライブラリ(= DLLファイル)不要化の是非について
o ランタイムライブラリを不要にした時の長所
    + Windows Updateでランタイムライブラリが入れ替わっても、プログラムの動きが変わる危険がありません。
    + ランタイムライブラリをアンインストールされても、プログラムは動きます。
    + プログラムを配布している時、インストール時間と手間を減らす事が出来ます。

o ランタイムライブラリを不要にした時の短所
    + Windows Updateでランタイムが改善された時、プログラムに反映されません。
        + この場合、再ビルドしたプログラムを使わないと改善されません。
    + プログラムを配布している時、修正プログラムを配布する手間がかかります。


**** 確認したバージョン
o Microsoft Visual C++ 2010 Express


==
関連ページ:
    ▼Visual C++
    ▼コンピューター・プログラムを作る
    ▼制作メモ
    ▼目次
    C/C++標準ライブラリを正しく使う時に、非推奨警告を出さない
    UNIXの(POSIX準拠)プログラムをビルドする時に、なるべく警告やエラーを出さない
(2011年5月4日変更。ランタイムライブラリの名称統一。メモ欄の長所訂正 = プログラムの動きが変わる危険が無い)