VisualStudio2008



VC++のショートカット

Ctrl + N 新しいファイルを作成します。

Ctrl + Shift + S エディタで開いているすべてのファイルを保存します。

F7 ソリューションをビルドします。

F12 定義に移動します。

Ctrl + F12 宣言に移動します。

Ctrl + Shift + F grep


「cl」コマンドコンパイル

パス設定

C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BATを

実行しコンパイラパスを設定します。

(インストール時に自動パス設定をチェックしたならば不要)


コンパイル

cl <filename.c>

 

ライブラリ利用(ソケットなど)は引数で指定。

compile : cl ws2_32.lib <filename>

 

リソースファイル

コマンドラインでは、リソースコンパイラRCでRCファイルをコンパイルしCLでリンクします。

RC sample.rc
CL sample.cpp sample.res /LINK /OUT:sample.exe 

メモリリークの発見

1:ビルドの種類を「デバッグビルド」に設定。

(コンパイル後のデータが、ワークスペース〔拡張子dsw〕と同フォルダ内の『Debug』フォルダ内に作成される状態です、デフォルトでこの状態になっていると思います)


2:メモリリークを検出したいプログラムの先頭に、デバッグに必要なヘッダーファイル

をインクルードします。

(複数のソースファイルに渡って調べたい場合は、調べたい全てのソースにインクルードします)

crtdbg.h

3:プログラムが終了する直前の場所で、メモリリーク検出用の関数を呼びます。

_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

4:プログラムをリビルド→実行します。


5:異常終了させずにプログラムを終了させます。

(計算回数を調整する等で対処してみて下さい)


6:アウトプットの「デバッグ」欄に、リークしているメモリサイズが出力されます。

(例:
Detected memory leaks!
Dumping objects ->
{112} normal block at 0x007D0E10, 4 bytes long.
Data: < > CD CD CD CD

3行目は解放されていないメモリのアドレスとそのサイズ、

4行目はその中身です。

複数のリークがある場合は、その数だけ出力されます。


これはアドレス0x007D0E10から4バイトのメモリが解放されていないというメッセージです。

中身の「CD」は、リークを検出するためにVCが初期化している値ですのでエラーではありません。


プロジェクトの追加

1. 実フォルダの「xxxx.vproj」と「xxxx.c」をコピーして、リネームする

→「yyyy.vproj」「yyyy.c」


2.「yyyy.vproj」をエディタで開き、「xxxx」の場所を「yyyy」に変更する。


3.VisualStudioから「プロジェクトの追加」で「yyyy.vproj」を追加する。


4.ライブラリの依存関係を設定する



スポンサード リンク