VC++プロジェクトのプロパティ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
VC++プロジェクトのプロパティについて説明します
プログラムをビルドするとき、参照するディレクトリおよびフ...
ビルド時のバッチコマンド実行など
プログラムを作成するために覚えておくとべきことと
プログラム作成の効率を上げる方法を紹介します
よく使う設定は以下の通りです
・[[DebugモードとReleaseモード>#DebugRelease]]
・[[文字コードの設定>#charset]]
・[[追加のインクルードディレクトリ>#addincludedir]]
・[[追加のライブラリディレクトリ>#addlibdir]]
・[[追加の依存ファイル>#dependlib]]
・[[コード生成>#codegeneration]]
・[[ビルド時コマンドライン>#buildcmdline]]
・[[プリプロセッサの定義>#preprocesser]]
・[[コンソールの隠蔽>#hideconsole]]
・[[出力するファイル名の変更>#targetname]]
プロジェクトのプロパティを操作するにはメニュー欄から
「プロジェクト」→「プロパティ」を選びます
&ref(prop10.GIF);
* DebugモードとReleaseモード &aname(DebugRelease);[#dd74d...
実行ファイルを作りに当たり、DebugモードとReleaseモードが...
Debugモードは主にプログラムのデバック(バグ消し)を行うため...
Releaseモードは完成したアプリケーションを配布するためのモ...
生成されるファイルもDebugモードだとデバック用の情報やコー...
出力されるファイルのサイズも違いますし、デバック用の処理...
Releaseモードで出力されたファイルに比べて遅くなります
DebugモードとReleaseモードを切り替えるには次の箇所で選択...
注意しないといけないのは
SIZE(30){ COLOR(#ffaa00){DebugモードとReleaseモード別々に...
&ref(prop9.GIF);
* 文字コードの設定 &aname(charset);[#cf3a3488]
文字コードの設定を行います
基本的に「Unicode」か「マルチバイト文字」の設定を行います
Windows APIの関数を使うときはUnicodeとマルチバイトとで使...
Windows APIの文字列関係のコンパイルエラーとなった場合、こ...
(個人的にはこの設定に依存しないようなプログラムを書いた...
&ref(prop1.GIF);
* 追加のインクルードディレクトリ &aname(addincludedir);[#...
プロジェクトに使うインクルードファイルのディレクトリの設...
これはたとえばa.hというヘッダーファイルが
別のincludeというディレクトリ(フォルダ)にあったとして
インクルードするときには
#include "include\\a.h"
としてやらなければならないのですが
このincludeフォルダに他にもヘッダーファイルがある場合
いちいちパスをたどって指定するのはめんどうです
そこでincludeディレクトリの場所を予めプロジェクトに覚えさ...
#include "a.h"
と書くことができます。
パスというのは「親\子」のように「\」で区切られ、階層状に...
ただし、プログラムや設定などでは「\」ではなく「\\」を使...
というのは「\」はプログラム上や設定では特殊な文字として...
普通に\文字を表示するには\\と書く必要があるからです
また、「\\」でなく「/」で区切ってあっても同じ意味です
パスは2種類あり、相対パスと絶対パスがあります
絶対パスというのはドライブ直下から階層が全て書かれている...
たとえば次のようなものです
&ref(pass.GIF);
これはパソコンを使っている人毎にフォルダやファイルの置き...
長いのでプログラムや設定などで使うのは好ましくありません
そこで相対パスの指定方法を説明します
「.」は現在のディレクトリの絶対パスを指します
「..」は現在のディレクトリの1つ上のディレクトリの絶対パ...
ここでは、プロジェクトでのパスの設定のとき「.」を先頭に付...
プロジェクト(.vcproj)のあるディレクトリまでのパスを指します
プロジェクトのディレクトリ下にincludeディレクトリがある場...
&ref(prop2.GIF);
* 追加のライブラリディレクトリ &aname(addlibdir); [#p3a5e...
こちらはプロジェクトに使うライブラリファイル(.lib)ファイ...
指定の仕方は追加のインクルードディレクトリと同じです
&ref(prop5.GIF);
* 追加の依存ファイル &aname(dependlib);[#l80da80a]
プロジェクトに使うライブラリファイル(.lib)ファイルを指定...
直接ライブラリファイルを指定します
プログラム冒頭で
#pragma comment(lib,"ライブラリファイル名.lib")
と書くのと同じことです
(個人的には#pragmaのがおすすめ)
&ref(prop8.GIF);
* コード生成 &aname(codegeneration);[#s14c8a03]
アプリケーションの構成にかかわる重要な項目です
コード生成には次の4つがあります
・マルチスレッドデバック
・マルチスレッド
・マルチスレッドデバックDLL
・マルチスレッドDLL
&ref(prop6.GIF);
基本的には
Debugモードではマルチスレッドデバック
Releaseモードではマルチスレッド
を使います
というのは
・マルチスレッドデバックDLL
・マルチスレッドDLL
で作成した実行ファイルは別のパソコンで起動するには
次のようにうまく起動できず
&ref(exeerror.jpg);
別にインストールするものが増えてしまうのです
(たとえば、VC++2005で作成した場合はVC++2005 再頒布可能パ...
この2つに関してはさらに詳しくはDLLの項目で説明します
SIZE(30){ COLOR(#ffaa00){実行ファイルを配布するときにはRe...
に設定した実行ファイルを作成するのを忘れないでください
* ビルド時コマンドライン &aname(buildcmdline); [#u88e3fce]
ビルドイベント時(ビルドするとき)
・ビルド前
・リンク前
・ビルド後
の3種類でバッチコマンドを指定できます
たとえば、ビルド後のファイルを指定の箇所にコピーするコマ...
ビルドするたびにコマンドが実行され
ファイルを指定の箇所にコピーしてくれます
より詳細な使い方はバッチファイル作成の項目で説明します
&ref(prop7.GIF);
* プリプロセッサの定義 &aname(preprocesser);[#l1f509af]
プリプロセッサの定義を設定できます
これはプロジェクト全体で#defineされているのと同じ意味を持...
ちなみに_DEBUGという定義はDebugモード時にデフォルトで定義...
なので_DEBUGを利用してデバック用のコードを切り分けたりに...
&ref(prop4.GIF);
* コンソールの隠蔽 &aname(hideconsole); [#k952d7a9]
コンソールアプリケーションで作成する場合(main関数から始...
ウィンドウを表示するアプリケーションの場合、コンソールが...
(そうゆう場合は、そもそも最初からウィンドウズアプリケー...
コンソールでテスト用コードを書いていてそのままウィンドウ...
その場合はコンソールを隠蔽する必要があるわけです。
VS2008以前はプログラムの冒頭に
#pragma comment(linker, "/subsystem:\"windows\" /entry:\...
のように1行書いてあれば、隠蔽することができました
例:
#pragma comment(linker, "/subsystem:\"windows\" /entry:\...
int main(){
return 0;
}
しかし、この方法ではVS2010では隠蔽することができなくなり...
ではどうすればいいかというとプロジェクトのプロパティを次...
まず、「リンカー」→「システム」→「サブシステム」→「Window...
&ref(subsystem.jpg);
次に「リンカー」→「コマンドライン」→追加のオプションに次...
/ENTRY:mainCRTStartup
&ref(commandline.jpg);
やっていることは先程の1行と同じなのですがプロジェクトのプ...
サブシステムの設定が有効になるため隠すことができるように...
(おそらく、VS2010だと#pragmaよりプロパティ設定のほうが優...
/SUBSYSTEM:CONSOLEが働き、サブシステム設定が有効にならな...
* 出力するファイル名の変更 &aname(targetname); [#ked346fd]
通常はプロジェクトのファイル名の実行ファイルやライブラリ...
出力ファイル名を変更して実行ファイルやライブラリファイル...
出力ファイル名は「構成プロパティ」→「全般」→「ターゲット...
$(ProjectName)は現在のプロジェクト名に置き換わります
&ref(target.jpg);
ライブラリファイルを作成するとき
DebugモードとReleaseモードで出力ファイル名を変えてやると...
Debugモードでは$(ProjectName)_d、Releaseモードでは$(Proje...
に切り替えることで対応することができます
このように設定しておけば
例えば、templateというプロジェクト名のライブラリファイル...
Debugモードではtemplate_d.lib、Releaseモードではtemplate....
#vote((^ω^)やったお[8],何これwww意味不すぎwww[1...
終了行:
VC++プロジェクトのプロパティについて説明します
プログラムをビルドするとき、参照するディレクトリおよびフ...
ビルド時のバッチコマンド実行など
プログラムを作成するために覚えておくとべきことと
プログラム作成の効率を上げる方法を紹介します
よく使う設定は以下の通りです
・[[DebugモードとReleaseモード>#DebugRelease]]
・[[文字コードの設定>#charset]]
・[[追加のインクルードディレクトリ>#addincludedir]]
・[[追加のライブラリディレクトリ>#addlibdir]]
・[[追加の依存ファイル>#dependlib]]
・[[コード生成>#codegeneration]]
・[[ビルド時コマンドライン>#buildcmdline]]
・[[プリプロセッサの定義>#preprocesser]]
・[[コンソールの隠蔽>#hideconsole]]
・[[出力するファイル名の変更>#targetname]]
プロジェクトのプロパティを操作するにはメニュー欄から
「プロジェクト」→「プロパティ」を選びます
&ref(prop10.GIF);
* DebugモードとReleaseモード &aname(DebugRelease);[#dd74d...
実行ファイルを作りに当たり、DebugモードとReleaseモードが...
Debugモードは主にプログラムのデバック(バグ消し)を行うため...
Releaseモードは完成したアプリケーションを配布するためのモ...
生成されるファイルもDebugモードだとデバック用の情報やコー...
出力されるファイルのサイズも違いますし、デバック用の処理...
Releaseモードで出力されたファイルに比べて遅くなります
DebugモードとReleaseモードを切り替えるには次の箇所で選択...
注意しないといけないのは
SIZE(30){ COLOR(#ffaa00){DebugモードとReleaseモード別々に...
&ref(prop9.GIF);
* 文字コードの設定 &aname(charset);[#cf3a3488]
文字コードの設定を行います
基本的に「Unicode」か「マルチバイト文字」の設定を行います
Windows APIの関数を使うときはUnicodeとマルチバイトとで使...
Windows APIの文字列関係のコンパイルエラーとなった場合、こ...
(個人的にはこの設定に依存しないようなプログラムを書いた...
&ref(prop1.GIF);
* 追加のインクルードディレクトリ &aname(addincludedir);[#...
プロジェクトに使うインクルードファイルのディレクトリの設...
これはたとえばa.hというヘッダーファイルが
別のincludeというディレクトリ(フォルダ)にあったとして
インクルードするときには
#include "include\\a.h"
としてやらなければならないのですが
このincludeフォルダに他にもヘッダーファイルがある場合
いちいちパスをたどって指定するのはめんどうです
そこでincludeディレクトリの場所を予めプロジェクトに覚えさ...
#include "a.h"
と書くことができます。
パスというのは「親\子」のように「\」で区切られ、階層状に...
ただし、プログラムや設定などでは「\」ではなく「\\」を使...
というのは「\」はプログラム上や設定では特殊な文字として...
普通に\文字を表示するには\\と書く必要があるからです
また、「\\」でなく「/」で区切ってあっても同じ意味です
パスは2種類あり、相対パスと絶対パスがあります
絶対パスというのはドライブ直下から階層が全て書かれている...
たとえば次のようなものです
&ref(pass.GIF);
これはパソコンを使っている人毎にフォルダやファイルの置き...
長いのでプログラムや設定などで使うのは好ましくありません
そこで相対パスの指定方法を説明します
「.」は現在のディレクトリの絶対パスを指します
「..」は現在のディレクトリの1つ上のディレクトリの絶対パ...
ここでは、プロジェクトでのパスの設定のとき「.」を先頭に付...
プロジェクト(.vcproj)のあるディレクトリまでのパスを指します
プロジェクトのディレクトリ下にincludeディレクトリがある場...
&ref(prop2.GIF);
* 追加のライブラリディレクトリ &aname(addlibdir); [#p3a5e...
こちらはプロジェクトに使うライブラリファイル(.lib)ファイ...
指定の仕方は追加のインクルードディレクトリと同じです
&ref(prop5.GIF);
* 追加の依存ファイル &aname(dependlib);[#l80da80a]
プロジェクトに使うライブラリファイル(.lib)ファイルを指定...
直接ライブラリファイルを指定します
プログラム冒頭で
#pragma comment(lib,"ライブラリファイル名.lib")
と書くのと同じことです
(個人的には#pragmaのがおすすめ)
&ref(prop8.GIF);
* コード生成 &aname(codegeneration);[#s14c8a03]
アプリケーションの構成にかかわる重要な項目です
コード生成には次の4つがあります
・マルチスレッドデバック
・マルチスレッド
・マルチスレッドデバックDLL
・マルチスレッドDLL
&ref(prop6.GIF);
基本的には
Debugモードではマルチスレッドデバック
Releaseモードではマルチスレッド
を使います
というのは
・マルチスレッドデバックDLL
・マルチスレッドDLL
で作成した実行ファイルは別のパソコンで起動するには
次のようにうまく起動できず
&ref(exeerror.jpg);
別にインストールするものが増えてしまうのです
(たとえば、VC++2005で作成した場合はVC++2005 再頒布可能パ...
この2つに関してはさらに詳しくはDLLの項目で説明します
SIZE(30){ COLOR(#ffaa00){実行ファイルを配布するときにはRe...
に設定した実行ファイルを作成するのを忘れないでください
* ビルド時コマンドライン &aname(buildcmdline); [#u88e3fce]
ビルドイベント時(ビルドするとき)
・ビルド前
・リンク前
・ビルド後
の3種類でバッチコマンドを指定できます
たとえば、ビルド後のファイルを指定の箇所にコピーするコマ...
ビルドするたびにコマンドが実行され
ファイルを指定の箇所にコピーしてくれます
より詳細な使い方はバッチファイル作成の項目で説明します
&ref(prop7.GIF);
* プリプロセッサの定義 &aname(preprocesser);[#l1f509af]
プリプロセッサの定義を設定できます
これはプロジェクト全体で#defineされているのと同じ意味を持...
ちなみに_DEBUGという定義はDebugモード時にデフォルトで定義...
なので_DEBUGを利用してデバック用のコードを切り分けたりに...
&ref(prop4.GIF);
* コンソールの隠蔽 &aname(hideconsole); [#k952d7a9]
コンソールアプリケーションで作成する場合(main関数から始...
ウィンドウを表示するアプリケーションの場合、コンソールが...
(そうゆう場合は、そもそも最初からウィンドウズアプリケー...
コンソールでテスト用コードを書いていてそのままウィンドウ...
その場合はコンソールを隠蔽する必要があるわけです。
VS2008以前はプログラムの冒頭に
#pragma comment(linker, "/subsystem:\"windows\" /entry:\...
のように1行書いてあれば、隠蔽することができました
例:
#pragma comment(linker, "/subsystem:\"windows\" /entry:\...
int main(){
return 0;
}
しかし、この方法ではVS2010では隠蔽することができなくなり...
ではどうすればいいかというとプロジェクトのプロパティを次...
まず、「リンカー」→「システム」→「サブシステム」→「Window...
&ref(subsystem.jpg);
次に「リンカー」→「コマンドライン」→追加のオプションに次...
/ENTRY:mainCRTStartup
&ref(commandline.jpg);
やっていることは先程の1行と同じなのですがプロジェクトのプ...
サブシステムの設定が有効になるため隠すことができるように...
(おそらく、VS2010だと#pragmaよりプロパティ設定のほうが優...
/SUBSYSTEM:CONSOLEが働き、サブシステム設定が有効にならな...
* 出力するファイル名の変更 &aname(targetname); [#ked346fd]
通常はプロジェクトのファイル名の実行ファイルやライブラリ...
出力ファイル名を変更して実行ファイルやライブラリファイル...
出力ファイル名は「構成プロパティ」→「全般」→「ターゲット...
$(ProjectName)は現在のプロジェクト名に置き換わります
&ref(target.jpg);
ライブラリファイルを作成するとき
DebugモードとReleaseモードで出力ファイル名を変えてやると...
Debugモードでは$(ProjectName)_d、Releaseモードでは$(Proje...
に切り替えることで対応することができます
このように設定しておけば
例えば、templateというプロジェクト名のライブラリファイル...
Debugモードではtemplate_d.lib、Releaseモードではtemplate....
#vote((^ω^)やったお[8],何これwww意味不すぎwww[1...
ページ名: