2011年3月10日木曜日

Visual C++の使い方メモ

コンピューター・プログラムを作る(新着順)
o C++サウンドプログラミング
▼C++サウンドプログラミング

o C/C++標準仕様対応
Visual C++で普通のコンソールアプリケーションを作る方法
拡張子が.cのファイルを追加する方法
C/C++標準ライブラリを正しく使う時に、非推奨警告を出さない方法
_tmain関数の代わりに main関数を使う方法

o その他の便利設定
UNIXの(POSIX準拠)プログラムをビルドする時に、なるべく警告やエラーを出さない方法
Visual C++の文字セット設定を、マルチバイト文字セットにする方法
新規作成したプロジェクトからstdafx.hを完全に外す方法

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

o 入手とインストール = Visual C#と同じです。
Visual C# 2010 ExpressをDVDドライブ無しでオフラインインストールする
Visual C# 2010 Expressを製品登録する
Visual C# 2010 Expressにアップデータを適用する
----
o 簡単な制作補助プログラムを書いてる時に覚えた小技です。

Visual C++は、次のようなツールを作る時に便利です。無料版(= Express Edition)もあります。
o なるべく多くのコンピューターで動くプログラムを作りたい時(= システム毎にビルドします。)
o 複雑なプログラムを、ファイルを1つ置くだけで動くようにしたい時
o 常に高速で動くプログラムを書きたい時(= 作る人の腕次第です。)
o 作曲ツールのプラグインを作る時


**** 新着
o 2011年5月4日水曜日 Visual C++で普通のコンソールアプリケーションを作る方法


==
関連ページ:
    ▼コンピューター・プログラムを作る
    ▼制作メモ
    ▼目次
    ▼Visual C#
    ▽Visual Studioのニュース(外部サイトに移動します。)

UNIXの(POSIX準拠)プログラムをビルドする時に、なるべく警告やエラーを出さない方法

Visual C++
○2010 Express
Visual C++では、UNIXの(POSIX準拠)プログラムのビルドを、ある程度サポートしています。
標準の状態では警告やエラーが出ますが、互換性のある機能に関しては、警告やエラーを出さないようにする事も出来ます。


**** 手順
o 標準ライブラリのヘッダーファイルがインクルードされる前に、次のようなコードを入れます。
--------
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_NONSTDC_NO_WARNINGS
#define _USE_MATH_DEFINES
--------

    + 他にもあるかもしれません。発見しましたら、この欄に追加します。

o それぞれの定数の意味は
    + _CRT_SECURE_NO_WARNINGS = 標準ライブラリにある非推奨機能について、警告を出しません
    + _CRT_NONSTDC_NO_WARNINGS = ISO標準では無い機能について、非推奨の警告を出しません
    + _USE_MATH_DEFINES = ISO標準では無い数値計算用定数の定義を、無効にしません
    + 「非推奨」の意味は、「マイクロソフト社が非推奨と判断したもの」です。
    + 詳しくは、下にある参考資料をご覧下さい。

o おすすめの書き方は、3通りあります。
    + 詳しくは、「C/C++標準ライブラリを正しく使う時に、非推奨警告を出さない方法


**** 参考資料
▽CRT のセキュリティ機能(MSDNライブラリ)


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


==
関連ページ:
    ▼Visual C++
    ▼コンピューター・プログラムを作る
    ▼制作メモ
    ▼目次
    > Visual C++の文字セット設定を、マルチバイト文字セットにする方法
    新規作成したプロジェクトからstdafx.hを完全に外す方法
    Win32コンソールアプリケーションをランタイム不要にする方法

C/C++標準ライブラリを正しく使う時に、非推奨警告を出さない方法 - Visual C++

Visual C++
○2010 Express
Visual C++では、C/C++標準ライブラリを正しく使っていても、警告が出る事があります。
理由は、セキュリティを強化する目的で、標準ライブラリの一部の機能を非推奨にしているからです。
この警告は、出さないようにする事も出来ます。


**** 手順
o 標準ライブラリのヘッダーファイルがインクルードされる前に、次のようなコードを入れます。
--------
#define _CRT_SECURE_NO_WARNINGS
--------


o おすすめの書き方は、2通り(= プロジェクトで設定する方法も加えると、3通り)あります。
    + ソースコードの先頭で、#include の行が始まる前に記述します。
        + ソースファイルが1つしかない時は、こちらの書き方が便利です。
    + もしくは、次のように書きます。
        + ソースコードの先頭では、最初に特定のヘッダーファイルを #includeします。
        + 呼ばれたヘッダーファイルの中で、#include の行が始まる前に記述します。
o この他に、プロジェクトの設定で、定数を定義する方法もあります。

o Visual C++ が自動生成するサンプルコードのまま場合、stdafx.hの中の「#pragma once」行の下辺りに書くのが良さそうです。
    + 全てのソースファイルの先頭で、stdafx.hをインクルードしていました。


**** メモ
o 警告を出さないようにすると、次のような時に便利です。
    + Visual C++を使って、C言語やC++の標準の書き方を勉強している時
    + 他のシステムでも動作するように、汎用的なソースコードを書いている時
o 反対に、この警告を利用して、セキュリティが弱くなり易い所を検証する使い方も出来ます。
o UNIX用のプログラムを Windowsでも動かしたい時は、POSIX用マクロも有効にすると、ビルドの際の手作業が減ります。
    + 詳しくは、「UNIXの(POSIX準拠)プログラムをビルドする時に、なるべく警告やエラーを出さない方法


**** 参考資料
▽CRT のセキュリティ機能(MSDNライブラリ)


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


==
関連ページ:
    ▼Visual C++
    ▼コンピューター・プログラムを作る
    ▼制作メモ
    ▼目次
    > _tmain関数の代わりに main関数を使う方法
    UNIXの(POSIX準拠)プログラムをビルドする時に、なるべく警告やエラーを出さない方法
    Visual C++の文字セット設定を、マルチバイト文字セットにする方法

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日変更。ランタイムライブラリの名称統一。メモ欄の長所訂正 = プログラムの動きが変わる危険が無い)