VC PlusPlus:基本的な使い方 新しいページはコチラ
提供: yonewiki
(→プロジェクトの新規作成) |
(→プロジェクトの新規作成) |
||
1行: | 1行: | ||
+ | [[VC PlusPlus]]に戻る | ||
+ | |||
+ | == '''概要 Visual Studio''' == | ||
+ | :こういうアプリケーションを開発するための大規模なアプリを日本語では統合開発環境と言います。英語ではIntegrated Development Environment=IDEとされていると思います。 | ||
+ | |||
+ | |||
+ | :[[ファイル:20181025 VSLogo.png|600px|thumb|none|Visual Studio Community2015]] | ||
+ | |||
+ | |||
== '''起動''' == | == '''起動''' == | ||
: Visual Studioには様々なバージョンがありますが、管理人は | : Visual Studioには様々なバージョンがありますが、管理人は | ||
25行: | 34行: | ||
− | :[[ファイル:20181021 VS NewProject.png]] | + | :[[ファイル:20181021 VS NewProject.png|600px|thumb|none|プロジェクトの新規作成menu]] |
35行: | 44行: | ||
− | : プロジェクトの名前とプロジェクトの作成するフォルダを選択する必要があります。プロジェクトを保存する場所は、昔はスペース空白文字は嫌がられていましたが、最近はスペースを含めても良いので、'''フォルダのパス全体を通して、アルファベットのみを使い、記号はあまり使わない名前だけにした方が無難'''です。いろいろな外部のプログラムを参照する関係で、日本語文字があるとうまく動作しない場合は多いです。あれ?おかしな?と思ったら、全角のC++フォルダの中にプロジェクトがおかれていたりといこともあります。C++ | + | : プロジェクトの名前とプロジェクトの作成するフォルダを選択する必要があります。プロジェクトを保存する場所は、昔はスペース空白文字は嫌がられていましたが、最近はスペースを含めても良いので、'''フォルダのパス全体を通して、アルファベットのみを使い、記号はあまり使わない名前だけにした方が無難'''です。いろいろな外部のプログラムを参照する関係で、日本語文字があるとうまく動作しない場合は多いです。あれ?おかしな?と思ったら、全角のC++フォルダの中にプロジェクトがおかれていたりといこともあります。C++としたい気持ちもわからないでもないですが、Cppとかにしましょう(CXXとするのもいかしたネーミングセンスかもね)。フォルダ階層が深いとかっていうのも、ハマる原因になることもあります。プロジェクトの名前も長すぎると、プロジェクト名を含んだクラス名(プログラムの中に使われるユーザが命名できる関数の発展したものがクラスです。)が自動で沢山作られる関係もあるので、あまり長すぎない方がいいと思います。プロジェクト名とコンパイルしたりリンク処理したりする際に必要なコマンドラインプロパティも自動で生成されて、プロジェクト名に使われている名称は簡単に変更できるようなものではないです。 |
50行: | 59行: | ||
:[[ファイル:20181024 Win32PrjNew2.png|600px|thumb|none|プロジェクトの新規作成Win32アプリ2]] | :[[ファイル:20181024 Win32PrjNew2.png|600px|thumb|none|プロジェクトの新規作成Win32アプリ2]] | ||
+ | |||
61行: | 71行: | ||
: '''Security Development Lifecycleチェック'''というのは、セキュアな関数だけを使っているかチェックするというもので、文字列操作関数なんかで準備されているxxxx_sという関数をちゃんと使って、文字数を指定して関数を利用してバッファをオーバーして文字列を代入するような関数の利用を禁止するためのチェックを行うということを意味しています。メモリの使い方をきちんと制限して文字列を代入するような仕組みにしているかチェックすることで予期せぬ、文字列代入によってシステムを悪用されるプログラムにならないことを目指すものです。 | : '''Security Development Lifecycleチェック'''というのは、セキュアな関数だけを使っているかチェックするというもので、文字列操作関数なんかで準備されているxxxx_sという関数をちゃんと使って、文字数を指定して関数を利用してバッファをオーバーして文字列を代入するような関数の利用を禁止するためのチェックを行うということを意味しています。メモリの使い方をきちんと制限して文字列を代入するような仕組みにしているかチェックすることで予期せぬ、文字列代入によってシステムを悪用されるプログラムにならないことを目指すものです。 | ||
− | |||
== '''プロジェクトのビルド''' == | == '''プロジェクトのビルド''' == | ||
74行: | 83行: | ||
:*'''バッチビルド''' | :*'''バッチビルド''' | ||
:メニューの「ビルド」-「バッチビルド」でバッチビルド ダイアログが起動し、各構成アイテムのビルド欄のチェックボックスをONにしたものを対象に、ダイアログにあるビルド ボタンでビルドが、リビルド ボタンでリビルドができます。 | :メニューの「ビルド」-「バッチビルド」でバッチビルド ダイアログが起動し、各構成アイテムのビルド欄のチェックボックスをONにしたものを対象に、ダイアログにあるビルド ボタンでビルドが、リビルド ボタンでリビルドができます。 | ||
+ | |||
+ | == '''プロジェクトのデバッグ''' == | ||
+ | : 先の項目でプロジェクトの構成にはReleaseとかDebugとかっていうのがあると説明しましたが、Releaseは作成したプログラムを人に配布してとか、自分で実際に使うとかするときに、ビルドして作成するプログラムで、動作させるためだけに特化した、いたってスリムな構造のプログラム、いわば作られたプログラムを使用するにあたって最適化されたバイナリの状態のプログラムを出力するバージョンと言ってもよいと思います。DebugはReleaseの反対語みたいなもので、余計なものを含んだプログラムでして、余計なといってもプログラムが完成する前の段階で、動作に問題が起こらないかをチェックすることができる構造を含んでいると言ってよいと思います。プログラムのサイズも少し大きいです。何よりも動作の途中で、プログラムをとめて、その状態で各種変数にどういう内容が保持されているかをチェックしたり、Debug用にイミディエイトウィンドウとよばれる出力ウィンドウにどういう動作をしたかをテストプログラムの中で文字列として出力させる指定をして、どんな風に動いたかを知るための仕組みを保持しているバージョンになります。 | ||
+ | |||
+ | |||
+ | : Releaseバージョンとしてビルドするまでは、開発ではずっとデバッグバージョンで開発を進めることになりますので、基本はデバッグバージョンだけをビルドするという作業が多くなるはずです。ひとからもらったプログラムをビルドするだけの人なら、デバッグは一切しないかもしれませんが…。そういう人は、あんまり、ここには来ないと思います。 | ||
+ | |||
+ | |||
+ | : で、そのDebugバージョンのプロジェクトの構成を使っているとして、思ったところでプログラムをいったん止めて、変数の中身を確認するという作業をどうするか?そして、とめたあとにプログラムを1命令づつ動かして、どういう動きをしているかを追っていく方法とか、いわゆるデバッグ作業の方法を基本的な使い方の記事の項目として記述しておきたいと思います。デバッグは基本的なことっていうことです。あ、デバッグっていうのは、プログラムのバグ=不都合・虫をデ=取り除くという意味合いでして、プログラムのチェック作業自体をデバッグというようになっています。こんな僻地にたどりついた人は、知ってる人の方が多いかもしれませんが、念のため。 | ||
+ | |||
+ | |||
+ | '''<big><big>手順</big></big>''' | ||
+ | :'''<big>1.</big>'''先の項目で実施した新規作成の自動で生成されたプログラムの中にはプロジェクト名に拡張子.cppという名前が付けられたファイルがあって、そのファイルの内容がメインのテキストエディタみたいなところで最初から開かれているはずでして、開かれていない場合は、割かし大変なので、カンで開いてください。いや、割かし難しいっすねイキナリデバッグから説明するってのは…でも、Visual Studioの各種ウィンドウの使い方とかの説明からやると退屈だと思うんです。カンでは開けないかもしれないので、開いていない場合は[[VC PlusPlus:Cppファイルの開き方]]に説明をかいておくので、開いてください。で、その135行目くらいに、下記の画像のような部分があるはずなので、このへんで、プログラムの動作を止めて、デバッグのなんたるかを勉強してみましょう。自分が指定した部分は、自動で作られたWin32アプリのメニューのバージョン情報ってのをアプリケーションを使うユーザがクリックしたときに実行される部分です。 | ||
+ | |||
+ | |||
+ | :[[ファイル:20181030 DebugBreakPoint.png|600px|thumb|none|BreakPointの位置選択]] | ||
+ | |||
+ | |||
+ | :'''<big>2.</big>'''そしたら、この135行目、あるいは、Visual Studioのバージョンとかの違いで、少し行がずれているかもしれませんが、同じ部分にメモ帳とかで文字を編集する対象となるカーソルがある状態にして、この行をマウスでクリックしたり、この行の近くにあるカーソルを矢印キーとかで対象の行までもってきたりしましょう。そしてキーボードの[F9]を押しましょう! | ||
+ | |||
+ | |||
+ | :すると… | ||
+ | |||
+ | |||
+ | :[[ファイル:20181030 DebugBreakPointMark.png|600px|thumb|none|BreakPointのマーク]] | ||
+ | |||
+ | |||
+ | :上記のように対象の行の横に赤い丸印がついたと思います。ここでプログラム止めます!の印です。キーボードの[F9]で止める場所として登録できましたが、他にもメニューの「デバッグ」-「ブレークポイントの設定/解除」を使ってもいいし、対象行の真上とか、対象行の文字を選択した状態で右クリックして表示されるコンテキストメニューの「ブレークポイントの設定/解除」でも同じ操作ができます。あるいは赤丸が表示されたところをクリックするだけでも同じことができたりとやり方が何通りもあります。ひとつの操作をするのにいろんなやり方があるせいでどんどん説明がながくなります。いやっす(汗。読んでる人も説明が長すぎていやっす(汗ってなったひともいると思います。ある程度、オーソドックスなやり方は網羅して説明しつつ、なので我慢して読みすすめてもらえるといろいろ理解できると思います。そしたら、次! | ||
+ | |||
+ | |||
+ | :'''<big>3.</big>'''キーボードの[F5]キーを押しましょう。デバッグが開始されます。割かし時間がかかる人もいれば、すぐに以下の画面になった人もいると思います。 | ||
+ | |||
+ | |||
+ | :[[ファイル:20181030 Debug1.png|600px|thumb|none|デバッグ画面1]] | ||
+ | |||
+ | |||
+ | : デバッグの開始もいろいろ操作方法がありまして、メニューの「デバッグ」-「デバッグの開始」を選択しても同じことです。あとはツールバーのコレをポチっと押したりしても同じです。 | ||
+ | |||
+ | |||
+ | :[[ファイル:20181030 DebugStart.png|600px|thumb|none|デバッグ開始ボタン]] | ||
+ | |||
+ | |||
+ | :'''<big>4.</big>'''デバッグを開始しましたが、今のところはまだ、Win32アプリが動いただけです。ブレークポイントを設定した箇所は、このウィンドウでヘルプのバージョン情報を選択したときに呼び出されるコードに設定したからです。では、さっそく、「ヘルプ」-「バージョン情報」を選択しましょう。すると以下のような画面になり、設定した場所でプログラムが停止した感じになります。 | ||
+ | |||
+ | |||
+ | :[[ファイル:20181030 DebugWindowManupilate.png|600px|thumb|none|作成したアプリのヘルプ バージョン情報を選択]] | ||
+ | |||
+ | |||
+ | :[[ファイル:20181030 Debug2.png|600px|thumb|none|デバッグ画面2]] | ||
+ | |||
+ | |||
+ | : 赤い丸のブレークポイントの印の上に黄色い矢印が表示されていて、まさにこの行が処理されようとしていることを意味しています。この状態で、様々な変数の中身の情報を見ることができます。注目すべきはローカルウィンドウでしょう。現在の関数内で使われている変数の主要なものが自動でウォッチ(中身を覗くこと)ができていることです。この領域には、その下に沢山のタブがついていると思いますが、どれも中身を覗いたり状況を確認するのに便利なウィンドウがタブ形式でまとめられています。タブになっているものを別々のグループのタブにしたりと同時に表示させることもできます。そのあたりの細かい操作は、基本的な操作ではなくなるので、また別の記事に記述することにします。 | ||
+ | |||
+ | |||
+ | :[[ファイル:20181030 DebugLocalWindow.png|600px|thumb|none|デバッグ中に表示されるローカルウィンドウ]] | ||
+ | |||
+ | |||
+ | :'''<big>5.</big>'''1行分の命令(実際にはセミコロンで区切られる命令の区切りごと)を実行するには、キーボードの[F10]キーを押しましょう。ステップオーバーと言います。今実行している関数が終わったところまで進む場合はキーボードの[Shift]+[F11]キーを押しましょう。ステップアウトと呼びます。今回の場合はWndProcというメッセージ関数の中でブレークポイントを設定しているので、ステップアウトすると、それ以上はプログラムを見ることはできないというようなメッセージが表示されると思います。そしたら、キーボードの[F5]キーを押して、Win32アプリが動作している状態にするしかないです。デバック中のF5は続行という意味ですので、次のブレークポイントまで進むか、Win32アプリがメッセージを受け取るのを待つかの状態まで進みます。現在の行が呼び出す関数の中身に移動するときはキーボードの[F11]キーを押しましょう。ステップインと呼ぶ動作になります。関数の中身がのぞける場合はその関数が記述されているファイルがエディタ画面で開いて、また一行づつ、命令を実行するか、命令の確認する方法を選択できます。ブレークポイントはプログラムの複数の場所に設定することができますので、確認したい場所にうまくブレークポイントを設定するのが、素早い動作確認をするコツにもなります。WndProcが何かということについてはW32プログラムの記事などでのプログラムの説明でWindowsアプリの仕組みを理解しないとダメだと思います。 | ||
+ | |||
+ | |||
+ | :基本的な使い方は以上になります。もっとデバッグの機能を活用する手順は基本的ではなくなってくるので、これも別の記事として記述したいと思います。 | ||
+ | |||
+ | == '''プロジェクトの実行''' == | ||
+ | :'''<big>1.</big>'''キーボードの[Ctrl] + [F5]でデバッグなしで実行ができます。コンソールアプリ開発で、ブレークポイントを設定しない場合は、この方法で実行しないと実行結果を見ることはできません。この方法で実行すると、 | ||
+ | |||
+ | |||
+ | ::'''続行するには何かキーを押してください . . .''' | ||
+ | |||
+ | |||
+ | :というメッセージが表示されてコンソールが閉じないままになってくれます。 | ||
+ | |||
+ | |||
+ | |||
+ | [[VC PlusPlus]]に戻る |