リブlab

理系大学生のIT・電気・大学・趣味についての日記

Visual Studioの使い方 画面を説明するよ 4 ~ デバッグ ~

 この記事の下書き更新したと思ったらされてなかった。やる気消滅マン。
はてブ様、僕みたいなマヌケの為に自動保存機能つけてくだしあ。(懇願)

 というわけで、どうもこんにちはリブです。
今回はデバッグ編ということで[デバッグ]メニューを見ていきましょう。

実際に見てみよう


[ウィンドウ]とは? [ウィンドウ]でできること


 [ウィンドウ]コマンドでは、第一回で説明した[表示]メニューと同じようなことができます。
 つまり、ツールバーよりも下に表示されているエラー一覧やクラスビューなどのウィンドウと呼ばれる画面領域を編集することができます。試しにブレークポイントを押してもらえれば分かると思います。

 では、次に[ウィンドウ]の中身を見ていきましょう。

ウィンドウ

 ウィンドウを開けるとブレークポイント、例外設定、出力、診断ツールの表示、イミディエイトウィンドウというリストが出てくると思います。
 これらを一つ一つ見ていきましょう。



ブレークポイント

 このウィンドウを表示することで自分が設定したブレークポイントの管理をスムーズに行うことができます

 では、そもそもブレークポイントとは一体何でしょうか。
これはデバッグ作業において実行中のプログラムを指定した箇所で一時停止させる機能があります。

 デバッグ作業に重宝されるのですが詳しく書き始めると[デバッグ]メニューの説明という本筋から外れますので、ひとまずそういうものがあるんだなとしておいてください。



例外設定

 [例外設定] ウィンドウを表示することで、デバッガーに実行を中断させる例外、およびデバッガーに実行を中断させるポイントを指定することができます

 例外を追加または削除したり、実行を中断する例外を指定したりすることができます。

 [例外設定]ウィンドウを表示させるとたくさんチェックボックスが出てくると思います。

 それにより特定の例外を選択することで、その例外が投げられるたびに、処理するか処理しないかに関係なく、デバッガーの実行を停止することができます

 ちなみにですが、[例外]はプログラムの実行中に発生したエラー状態を表します。

 これも詳しく書き出すと本筋から逸れるほど長くなるので別の機会に。記事を書いたらリンクを貼っておきますが、忘れていたら一声いただけたら幸いです。



出力

 これは、まあ[表示]にもありましたよね。出力結果(ビルドからなどの)を表示してくれます。
 ビルド結果やデバックの結果が表示されますね。



診断ツールの表示

  診断ツールというメモリ使用量を把握するためのツールです。
 この辺はメモリリークなどの言葉に馴染みがでてきてから使い始めるかも。。。
  使い方に関しては公式のサイトが非常に分かりやすいです。

アプリのメモリ使用量を測定する - Visual Studio | Microsoft Docs


 要望があれば僕もより分かりやすくするか、実際に試せる環境を用意しようとは思います。
  ここで、じゃあ孟の記事じゃなくて公式見れば使い方が全部載ってるんだと皆さん思われると思うのですが。実はそう易しいサイトではなくてですね。
写真があれば良いのですが著作権の都合上リンク張っておきます。

Visual Studio のドキュメント - Visual Studio | Microsoft Docs

 ここ見てもらえれば分かるんですけど、どこどの機能があるのかを探すのが大変なんですよね。

 誰か「この処理が(デバッグとかが)したい!」
 マイクロソフト「それならここを見たらデバックのやり方が一通り載ってるよ!」

という感じのために、このメニューで何ができるの?っていう「何ができるのか」が知りたい場合に使いにくいんですよね。

「これをしたいならこれ使って」としか教えてくれないので、「これはなんだろ?」となった時に一個一個調べないといけません。それは大変ですよね。

 それを省くためにこの記事があります。僕は基本的に既に有って、書き直すような記事は書くつもりはないです。自分が不便だったことを元に改善した記事などを出します。

ということで、今後ともよろしくお願いします。


[グラフィックス]とは? [グラフィックス]でできること

 とか見出し書いときながらよくわかりません。調べてもよくわかりませんでした。ごめんなさい。専門外です。
一応分かったことは、directX使ってる方が使うものらしいです。GPUコードのデバッグに使うそうです。
多分これに関わっている人はこの記事見る必要ない人しかいないと思います。
知人がDirectX使ってるので今度聞いてみます。

デバッグ]とは? [デバッグ]でできること

 [デバッグの開始]を押すとビルドして(コンパイルもこの時に)プログラムを実行してくれます。

 [デバックなしで開始]を押すとビルドして(コンパイルもこの時に)プログラムを実行してくれます。

 一緒じゃねぇか!コピーミスかよ!
 いいえ、あってます。では、この二つの違いはなんでしょうか。そのまんまです。デバックするかしないかです。
意味わかりませんよね。解説します。

解説

 デバッグすると、エラー検出などの動作確認用データを埋め込んだり確認用の処理を通したりするようにプログラムを作り上げます。
ステップコマンドやブレークポイントなどの機能が使える!
デバッグなしではそれができないんですね。勿論、エラーとかはビルドする時に出ます。

unityデバッガのアタッチ

 これはUnityというゲームエンジン(ゲームが簡単に作れる凄いソフトウェア)に利用します。Unityのためのコードにデバッグを利用したい時に利用するらしいです。

パフォーマンスプロファイラ

 下のサイトに昔お世話になったのでわざわざ僕が書く必要ないのでリンク張っときます。

Visual Studioのパフォーマンスプロファイラー - Qiita

 めんどくせー!って人のために簡単に説明すると診断ツールが出てきます。

プロセスのアタッチ

 「プロセスのアタッチ」とはVisual Studioで作成しているプログラム以外のアプリケーション(プロセス)に対してデバッグを行う機能です。
プログラム内で外部のアプリケーションを使用している際、外部アプリケーションで発生したエラーなどを具体的に特定する場合などに使用します。

[ステップイン]とは? [ステップオーバー]でできること

 まず、[ステップイン]と[ステップオーバー]を使うには、ブレークポイントを設定します。ブレークポイントはバグの原因と思われる行に設定します。
ブレークポイントを設定することで、私たちはその行を実行する前の段階でそのプログラムがどういった挙動をとっているのか知ることができます。

 さらに、問題が発生しているコードの領域を特定するのが困難な場合は、問題が発生する前に実行されるコードにブレークポイントを設定した後、問題の兆候が現れるまでステップ コマンドを使用することができます。
 [ステップイン]では、その行から一行ずつ次の処理へと向かいます。関数があればその中に入って一行ずつ進みます。

 [ステップオーバー]では同じように一行単位で処理されますが、関数の行に辿り着くと実行はしますが、関数の中までは入らずに次の行に向かいます。
これはライブラリの奥まで進みたくないときなどによく使われると思います。

終わりに

 今回でvisual studioの紹介は一旦終了します。
時間ができたのでブログを更新していきます。そして、今回の記事を書く前に過去の記事を見直しました。色々反省点が見つかったので、次回は反省点を共有したいと思います。

Visual Studioの使い方 画面を説明するよ 3~ ビルド ~

 こんにちは、リブです。
今回はビルドの説明をしていきます。
ですが、その前にソリューションやプロジェクトなどの概念を明確にしておきましょう。
 説明部分が長く難しいことも書いているので使い方を手早く知りたい方は[ビルド]の使い方までスクロールしてください。

ソリューションとプロジェクトとは  

  

 Visual Studio でアプリ、webサイト、プラグインなどを作成するときは、プロジェクトから始めますよね。  

 たとえば、あなたが何かを作ろうとします。  

[ファイル]>[新規作成]  

と、ボタンを押しますよね。では、次に出てくるのは何でしょうか。実際に確認してみてください。  

  [プロジェクト]と[ファイル]が出てきましたよね。僕の一番最初の「デスクトップアプリを作ってみた」って記事を見ると、確かにプロジェクトからアプリを作ったのが分かりますよね。  

  

hajimekata-nyumon-donyu.hatenablog.com  

  

 はい、このようにVisual studioで何かを作る時はプロジェクトからスタートします。


プロジェクトとは

プロジェクトについて具体的に書くと

プロジェクトには、コンパイルを実行するのに必要な「ソースコードファイル、
アイコン、イメージ、およびその他の要素」が含まれる。  

プロジェクトには、プログラムが通信する種々のサービスやコンポーネントで
必要になる可能性がある全てのコンパイラ設定とその他の構成ファイルも含まれる。  



 このような中身を持つものをプロジェクトと言うんですね。

簡単に説明すると録音アプリを作っていると仮定すると、録音のための処理を記述したコードとアプリのアイコンが含まれるってことです。



ソリューションとは


 ソリューションはプロジェクトを格納するものです。

 ソリューションについてより詳しく書くと
ソリューションには1つ以上のプロジェクトがあり、「ビルド情報、ウィンドウの設定、およびどのプロジェクトにも関連づけられていないファイル」が含まれます。

 ソリューションには、プロジェクトで作業している各ユーザーの設定、ユーザー設定、および構成情報を格納する.suoファイルと呼ばれるファイルが関連づけられています。

solutionProjectRelation

solutionProjectRelation
(なぜかエクスポート時に画像が汚くなりました。怪奇現象怖い。)


ビルドとは ビルドでなにができるのか

 では、本日の本題に入りたいと思います。


ビルドとは

 ビルドとは以下の図の流れで表される仕組みです。

compiler
compiler
linker
linker



 このように、visual studioではプロジェクトを開けてソースコードを作成し、ビルドをすることでプログラムを機械が実行可能な形に変更するのです。

 機械が実行な形に変更するってどういうこと?なんで?と思う人のために簡単な解説を挟みます。

解説

 機械は命令されて動きます。その命令は数字の羅列で表されます。しかし、人にとって読みにくいので今の時代のようにC言語Pythonでコードを書くようになりましたとさ。(その間のことやアセンブリ言語は今回省く)

そのコードは機械が理解できないから機械が理解できるようにコンパイルする。これが機械が実行な形に変更するということ。



では、図にある静的解析やプリプロセッサについて解説します。

静的解析

ソースコードのsyntax error(文法ミス)を見つける。つまりバグ探し

プリプロセッサ

ソースコードにヘッダやソースファイルを取り込み
ソースコードに書かれたマクロの書き換え
コンパイル対象の選定
・処理系ごとの動作指定

コンパイラ

機械語に翻訳する

リンカ

 オブジェクトファイルのコードセクション、データセクションを連結し、定義されているシンボルと参照を接続し、ライブラリから未解決シンボルを抽出し、実行ファイルを書き出す

 巨大な開発をする時は、よく複数のプログラムに分けて開発します。 その場合、一つのプログラムを修正したからといって、全てを再コンパイルするのは効率が悪い。 ソース毎にコンパイルしてオブジェクトファイルを取得し、それらをリンクするのが効率的。だからリンクします。




とにかくビルドは機械が実行できるようにするんだと覚えてください。

[ビルド]の使い方

build
build
 

ビルド リビルド クリーン の区別

ビルド=変更が行われた部分だけビルドする

・「ビルド」は「依存関係のあるファイル間のタイムスタンプの比較」によってビルドアクション(=コンパイルなど)の要不要を判断しています。
必ずしも「ファイルの変更」を検出しているわけではないです。

なので、なんらかの理由によって依存関係のあるファイルのタイムスタンプが逆転してしまうと、ビルドが正常に行われなくなります。


リビルド=変更に関わらず、全てをビルドする

クリーン=過去のビルドによる生成物を全て消去する(次にビルドをしてもリビルドしても変わりない状態にする)


プログラムデータベースファイルpdb)= デバッグとプロジェクト状態情報を保持しています

 これを構築するのが完全なプログラムデータベースファイルを構築するコマンドなんですが、気を付けることがあります。

 もしもVisual Studioのデフォルトの場所(マイドキュメント)でプロジェクトを作ると、PCのユーザー名が漏洩する可能性があります。 Debugビルドではこのファイルを元にブレークポイントがかけられるので、Debug時は有効なのですがRelease時には要りません。


コード分析=識別子の大文字と小文字を区別がされているかなどの「コーディングルール」をチェックしてくれます。カスタムもできるのでチームでカスタムすることもあるそうな。



 [パッチビルド]や[構成マネージャー]についてはクリックすれば分かると思いますので今回はここまでです。
お疲れさまでした。



終わりに

 すみません、今回は記事の構成を間違えてしまって最初に技術的なことをふんだんに書いてしまいました。
次回からは以前通り最初に簡潔に述べてから具体的に書いていきたいと思います。(多分)

自分用memo IT英語 initialize snapshot F5キー ショートカットキー設定vs pull-request ドロップダウンリスト デリミタ diff C/C++の違い  c++ライブラリ

 完全個人用メモですが、皆さんが暇な時に見ていただければ何か参考になるかもしれないので置いときます。(正確性はメモなので…)

 

 ついでに役立ちそうだなーってことを過去のメモから抜粋して載せます。昔のメモなんで今では当たり前のこととかを書きますがビギナーの方にはヒントになるはず。

 

 どの言語か(例えばC++だったり、C#だったり)を書かずにメモすることが多いので僕以外の人が読むと混乱するかもしれません💦

極力気を付けます。

 

・initializeはスタートラインに立つというニュアンス

進む初期化と戻る初期化

 

進む初期化

例)変数に最初の値を入れるとき「変数の初期化」という

 

・snapshotはその瞬間のモノ(データや写真)のこと写真だけを指すわけじゃない。

その時点の状態を丸ごと保存したもの

 

・マルチスタートアップで開始(orデバッグなしで開始)を選んでctrl+F5でまとめて実行「F5だけならデバッグ

 

・[ツール]>[オプション]>[環境]>[キーボード]の文字列検索ボックスに[スタートアップ]と入力すると候補が出てくるから、ショトカを作る。プロパティ開かんでもこれで可能になる。

 

・pull requestとは開発者のローカルリポジトリでの変更を他の開発者に通知する機能。

さらに、変更箇所を表示してくれる。

(gitが提供したのではなくgithubから始まった)

・as it was:それがあったように(な)

このasは様態

 

・merge:併合する、混合する

 

・ドロップダウンリスト=プルダウンリスト≠コンボボックス

コンボボックスは入力可、リストは表示のみ

 

・デリミタはカンマやタブやスペースなどの区切り

 

・diff:differentとかの略、ファイルの差分を見るコマンド

 

・feedback:消費者からの反応

feed:与える、養う。供給する

 

・incorporated:合併

 

C言語のヘッダファイル:様々な関数を使用可能にする

 C++のヘッダ:クラスを利用可能になる。

Cはヘッダファイル、C++はヘッダ(でもマイクロソフトはヘッダーファイルって言ってるし、よう分からん)

 

cは名前空間無い

 

coutはcの関数と異なり、オブジェクトである。

 

・標準C++ライブラリは、C++の標準規格で定められたライブラリ

STL(スタンダード テンプレート ライブラリ)はその一部

 

ライブラリ(魔道図書館)ヘッダ(魔術書)

 

・implementation:実装

 

・array:配列

 

オペランド:演算対象の値

例) x + y のxとy

 

・オブジェクト:データと処理の集まり

 

・クラスはオブジェクトを取り扱うために定義する

 

・テンプレートは雛形とかいうより型を取り敢えず置いとくって感覚のほうが分かりやすい気がする。

 

・(C#)クラスの中身

*コンストラク

*フィールド

*プロパティ

*メソッド      など

で、これらの要素(*の後ろ)をメンバーとも呼ぶ

 

クラスはデータ型の一つ

 

配列とクラスは宣言しただけでは使用できないのでnewを使って実体化

 

リファクタリング:動作機能は同じ状態でソースコードをより美しくすること

 

コンテキストメニュー=右クリックメニュー

 

ドラッグアンドドロップ:マウスで対象を選択し左ボタンを押しながらひっぱることがドラッグ。ドロップは左ボタンを離すこと。

(昔これが分からない友人がいてビビったのを思い出したので記述。まあ、そういう人がこの記事に辿り着くのか怪しいが…)

 

・variable=var=変数

 

・関数にも勿論アドレスはある

関数はfunctionで機能って意味で日本語無理やり充てたかなんかで関数って呼ばれているんだっけ?関数は処理を表すから、正直日本語よりも英語で覚えたほうがイメージつかみやすいよね。

 

・parameter:仮引数

仮引数は関数の横にある()の中身

 

・argument:実引数

実引数は関数の中にあるやつ

 

・int=interger

 

・constはこれで修飾しとくと、その修飾された変数は宣言の後に変更できない。

例)

 const int a = 1; 

a = 2;  //ここでエラー

・(C++)クラスにおいて、アクセス指定子を省略するとpublicが自動的に選択      構造体において、アクセス指定子を省略するとprivateが自動的に選択 それ以外のクラスと構造体の違いはない  

Visual Studioの使い方 画面を説明するよ 2~ プロジェクト ~

 

こんにちは、リブです。今回もvsの画面を見ていきます。

 

実際に見てみよう

 

 では、上部にあるメニューバーの残りを見ていきます。

 

[プロジェクト]とは?[プロジェクト]でできること

 

・[ソリューションの再ターゲット]コマンドからSDKのバージョンを変更できる

 

 これについては使う人しか使わないと思います。多分。(あほみたいな日本語だけど雰囲気で伝わるよね?)

 

・[クラスの追加]コマンドはその名の通りクラスが追加できる。

 

 プログラミング言語学ばないと「クラスとはなんぞや」だと思いますが、頭の片隅に入れといてください

 

・[クラスウィザードの開始]

 

 クラスウィザードは既存のクラスにメッセージハンドラやメンバ変数を追加したりと、クラスの管理ができます。

 

・[リソースの追加] 

 

 リソースとは、ユーザーに情報を提供するインターフェイス要素のこと。ビットマップ、アイコン、ツールバー、およびカーソルはすべてリソースと呼ばれます。

 

・[新しい項目の追加]

 

 このコマンドを選択するとソリューションにファイルやクラスなどを追加できます。

 

↓流れ

 まず[新しい項目の追加]をクリックすると下図のようになるので、追加したい項目をチェックします。今回はC++ファイルを選びます。

adding1

adding1

 

 

 そうすると下図のようになり、ソリューションエクスプローラーを見るとソリューションの中にソースファイルとして追加されているのが分かります。

 

 確かにグレーで強調表示されたソースコードの上にadding.cppとありますね。

 

 編集画面にもadding.cppのタブができています。

 

 

adding2

adding2

 

・[既存の項目の追加]

 

 新しく作る用にファイルなどを追加する[新しい項目の追加]と異なりPCに保存しているファイルなどをソリューションに追加するコマンド

 

・[新しいフィルター]

 

 「ソースファイル」「ヘッダーファイル」「リソースファイル」というのがソリューションエクスプローラーの中にありますよね。

 これらの項目が「フィルター」です。フォルダと違い実際のフォルダ構造と関連付けられていないのでフィルターを全て消してから開発する人もいるそうです。

 

 ソリューションをすっきり見えるようにする道具

 

・[参照データベースエラーを表示]

 

 読んで字の如くです。ちなみに英語だとliteral(形容詞・文字通りの)ですね。受験英語懐かしい。

 

 仮にエラー一覧windowを表示していなかったらエラー一覧windowが出てきます。

 

・[接続先サービスの追加]

 

 Office365APIsやCloudStorageなどのサービスを接続できるようにするコマンド

 

・[スタートアッププロジェクトに設定]

 

 スタートアッププロジェクトは実行されるプロジェクトです。

ソリューションウィンドウで太字で表されたプロジェクトのことです。

 

 複数プロジェクトがソリューション内にあるが、ある一つのプロジェクトを実行したいときに利用できます。

 

 複数プロジェクトを実行したい時は[マルチスタートアッププロジェクト]を利用します。

 

 ソリューションのプロパティを開き、[共通のプロパティ]>[スタートアッププロジェクト]>[マルチスタートアッププロジェクト]をクリックして、各プロジェクト毎にアクションを設定します。

 

 アクションは[デバックなしで開始][なし][開始]の三つから選びます。

 

multiProperty

multiProperty

(文字が手抜きかつトラックボールマウスで書いたことにより汚いですがご愛敬)

 

・[NuGet パッケージの管理]

 

 NuGetはコード共有メカニズムのこと

 

  NuGetでは、.NET用のパッケージを作成、ホスト、および使用する方法が定義されていて、それらの各ロール用のツールが提供されています。

 

 

 

終わり

 今回は一つだけの紹介となりましたがいかがだったでしょうか。visual studioへの理解が深まったのであれば幸いです。

 

 次回も多分今回の続きです。

 

追記

なぜか最後の写真multiPropertyってあるけどmultiStartUpですね。

 

Visual Studioの使い方 画面を説明するよ 1~ ファイル 編集 表示 ~

 

 こんにちは、リブです。今回はvsの画面を見ていきます。

 vsを開けるとこんな感じの画面が出てくると思います。

VsScreen1

VsScreen1

 VSを開けた時の最初のこの画面ではたいてい[ファイル]を開けて[新規作成]>[プロジェクト]という流れが多いと思います。後は開くを押して過去のプロジェクトを開けることぐらいでしょうか。 

 

 この画面にある[編集]や[デバッグ]はスタートページでは意味がないので、まず前回のプロジェクトを開けてください。記事を見ながら実際に動かしてみましょう。

(今回の記事の最後に前回のコード載せてます)

 

 

hajimekata-nyumon-donyu.hatenablog.com

 

(今までにVisualStudioを使ったことがおありでしたら今回の記事からでも問題ないです。)

 

実際に見てみよう

 

 では、上部にあるメニューバーを一つずつ見ていこうと思います。

 

[ファイル]とは?[ファイル]でできること

  •  プロジェクトやファイルの作成、保存、印刷

 

[編集]とは?[編集]でできること

[編集]ではソースコード上の移動や文字列の検索、置換ができます。前回の操作の取り消しもこのタブから可能です。

 

  •  [指定行へ移動] (Ctrl + G): アクティブなドキュメントで、指定した行番号に移動
  • [すべてに移動] (Ctrl + T キーまたは Ctrl + , キー): 指定した行、型、ファイル、メンバー、またはシンボルに移動
  • [ファイルに移動] (Ctrl + 1、Ctrl + F): ソリューション内の指定したファイルに移動
  • [型に移動] (Ctrl + 1、Ctrl + T): ソリューション内の指定したファイルに移動
  • [メンバーに移動] (Ctrl + 1、Ctrl + M): ソリューション内の指定したファイルに移動
  • [シンボルに移動] (Ctrl + 1、Ctrl + S): ソリューション内の指定したファイルに移動

 

[編集]でできること2

 ・文字列の検索とは

 

 クイック検索を押すと右上に文字を打ち込める画面(検索コントロールという)が出てきます。

そこに文字を打ち込むとコード中のその文字が見つけやすいように色が変わります。

言い換えると、現在のドキュメントに出現する指定された検索文字列が強調表示されます。

 

 

 今回はbreakと打ち込みました。そうすると下図のようになります。

 

quicksearch

quicksearch

 このように強調表示されます。

 

 ・文字列の置換とは

 

 クイック置換を押すと

replacement

replacement

 このような画面になります。この置換ボックスは「;」(セミコロン)が「aaaaaaaaaa」に置換されるということを表しています。

 

 そして、コードエディター画面の「;」に注目してください。強調表示されていますよね。しかし、一つだけグレーに強調表示された「;」があるのが見えますか?

 真ん中にあるこのグレーの「;」が置換されます。黄色に強調表示された「;」は変化しません。

 

 置換先文字列(aaaaaaaa)の隣にb→cとありますよね、それを押せば置換できます。

 

 もし、別の「;」を置換したい場合はボックスの右矢印にカーソルを合わせてください。次を検索と出ると思います。

 

 この右矢印をクリックすれば次の「;」にグレーが移りますのでその文字が置換可能になります。ひとつ前に戻る時は隣の下三角を押してください。前を検索と出ます。

 

 もし、全てのある検索文字列を置換したければ置換先文字列の隣の隣のab→acを押して下さい。

 

 それ以外の機能については説明不要だと思います。前へ戻るやコピーとかですから。その下にある機能についても見るかクリックすれば分かります。

 

 

[表示]とは?[表示]でできること

 

 [表示]ではIDE画面(visual studioのメニューバーより下の画面)のウィンドウを編集できます。

 

 現在私の画面ではエラー一覧、出力、ソリューションエクスプローラーなどが表示されていますが、これらやこれ以外のウィンドウを表示させたりするのが[表示]の役割です。

 

終わり

 

 今回は「ファイル・編集・表示」というメニューに注目してVisualStudioの画面を説明していきました。次回は残りを説明していきます。

 

メモ

  「IDEとは、ソフトウェア開発に必要なソフトウェアを一つに組み合わせ、同じ操作画面から統一的な操作法で利用できるようにしたソフトウェアパッケージ。一般的にはコードエディタやコンパイラリンカデバッガ、テストツール、バージョン管理ソフトなどで構成される。

 

 

プログラムのソースコードを記述するためのテキストエディタを中心に、ライブラリや開発中のクラスなどの仕様や内部構造を表示する機能、ソースコードから実行可能ファイルを構築(ビルド)するための機能や、コードとともにデータやドキュメントなどを一括して管理するプロジェクト管理機能、ファイルの新旧の版管理や複数人による編集を管理するバージョン管理機能、ステップ実行やインスペクションなどテストやデバッグを支援する機能などを持っていることが多い。プラグインなどの拡張機構を用いて、後から対応言語や機能を増やすことができるものもある。

エディタは一般的なテキストエディタとして機能に加え、入力途中の文字列から予約語や関数名、プロパティ名、メソッド名などの候補を推測して自動的に提示してくれるコード補完機能や、予約後や区切り文字などを認識して色分けして見やすくする機能、コンパイルエラーなどが発生した場所をエラーメッセージ等とともに強調表示する機能など、コード記述に特化した便利な機能が盛り込まれていることが多い。」

http://e-words.jp/w/IDE-2.htmlより

 

メモ2

 

 はい、前回のプロジェクト消しちゃったよ、見にくいよという人のためにコード置いときます。

 自分で打ち込んだほうが今後の学習で「あ、これそういえば書いたな」ってなります。

 

RECT rect;
GetClientRect(hWnd, &rect);
DrawText(
hdc,
TEXT("Hello, world!"),
-1,
&rect,
DT_CENTER | DT_VCENTER | DT_SINGLELINE
);
EndPaint(hWnd, &ps);

 

 

 

 

デスクトップアプリを作ってみたので作り方のご紹介 後半はプログラミングの始め方

 

 どうもこんにちは、リブです。今回の記事はプログラミングに興味あるけど何をするの?何ができるの?どうするの?ってお思いの方に向けて書きました。

追記

 

 手順3の時に開発者モードをONにしておく必要がありました。Windows

[設定]>[更新とセキュリティ]>[開発者向け]とクリックすると開発者モードというチェック欄がありますので、選択しておいてください。

  UEやUnityしか触らないなら必要ありません

 

デスクトップアプリの作り方

 

 今回はHello,World!と表示するだけのデスクトップアプリを作ってみました。

helloWorld

helloworld

 こんな感じです。プログラミングに興味のある方はぜひ作ってみてください。

 作り方は

  1. Visual studioをお使いのPCにインストールする(方法はいろんな人が書いてくれているのでわざわざ僕が書く必要ないですよね。)
  2. Visual studio installerの変更ボタンを押し、下記のようにクリックする

    setupVs

    setupVs





  3. Vsを開け左上の[ファイル]>[新規作成]>[プロジェクト]>[VisualC++]>[Windousデスクトップアプリケーション]の順でクリックしていく
  4. 下記のようになるようにコードを打ち込む

    helloWorldSourceCode

    helloWorldSourceCode


  5. Vsの上にあるメニューの[デバッグ]>[デバックなしで実行]の順にクリック

 そうすると、一番最初に載せた写真のような画面が出てきます。

 

 

ワンポイント

  さらに、DT_CENTERの行を DT_BOTTOM | DT_SINGLELINEと書き直すと左下に(Hello,world!)が表示されます。

 少し書き換えるだけで大きく変わりますね。

  マイクロソフトの公式サイトにDT_CENTERみたいなのがいっぱいあるので探してみてください。

 

 

 いかがだったでしょうか?デスクトップ開発はこんな感じでvsを使えばいいんだなというのが分かっていただけたと思います。今回は軽い雰囲気のみの説明でした。

 

 UWPについて気になる人もいると思うのでそのうち書きます。

 

 次回はvsのより詳しいインストール方法かvsの画面の説明をしていこうと思います。

C++などのコードの書き方よりも先に自分が何をどう使うのかをはっきりさせたほうが今後捗ると思うので、ぜひ僕の記事を追っていってください。

 

当ブログについて

 

 当ブログでは初めに、分かりやすく簡潔に読者さんが望むであろう情報を書きます。その後に、後半として他ブログさんのように文字をガンガン書いていきたいと思います。後半は密度が濃い内容と日記なので主観も書いていきたいので「文字を読むのが苦じゃないよ!」って人はぜひ読んでいただけると幸いです。

 

 個人的にはブログを読んでいて「いや、もっと簡潔に書けるやろ。」と思いながら必要な情報に至るまで読み飛ばしながら読むことが多いので、このようにしました。(読んどきながらアレですが僕以外にもそういう人は多いと思います。実際何かの情報で読み飛ばす人が多いと聞きました。)

 

プログラミングの始め方

 

 はい、ではプログラミングの始め方について語っていきたいと思います。そのためにプログラミングを始める動機をパターンに分けてから解説します。

 

 1.作りたいものがある。(スマホアプリ、ゲーム、デスクトップアプリなど)

 2.授業や将来使うから学習したい

 3.食いっぱぐれないスキルが欲しい

 

他にも様々な動機があると思いますが、思いつくのがこれだけなので「こんな

動機なんですけど、どうですか?」というコメントをいただければ返信します。

 

これから各パターンについて書きますが自分は書籍と授業で学びました。(あと、webサイト)ITスクールについても書いてますが、選択肢のうちの一つとして書いてます。薦めているわけではありません。こういう選択肢もありますよというのと、過去にはこういう筋道でプログラムを勉強した人もいますという紹介のような感じです。

 

 ではパターン1から始め方を解説します。

 

パターン1

 

1.「〇〇のつくり方」で検索をかけて必要な道具を調べる。

例)「ゲームのつくり方」で検索→UnityとVisualStudioが必要だと分かる→インストールする

2.勉強方法の確立

例)本を買う、スクールに通う、教材を買う、ネットで調べる(そのうち当ブログで書くと思うので、その時はぜひ)

 

 

 あとは勉強あるのみです。もしあなたが学生であればサークルを探すことが一番の近道です。

または学生でなくともTwitterなどでコミュニティを作ったりお友達を誘うことは可能です。

さらに、プログラミングができる知り合いがいると良いです。

 

 なぜこのような仲間を作ることが大事かというと、一つはモチベーションが続くからです。何かを始めることにおいて諦めることは一番の悪です。そこから進むことはできませんから。

 

さらに、仲間がいると楽しいですよね。好きこそものの上手なれとも言います。仲間といると一人でやるより刺激を受けれますしね。企画を作る時など「おお、こんな発想があるんか」と驚かされた経験は今まで何度もあってその度に負けてられるかってなったもんです。

 

↓ここから少し経験談を挟む

 自分は理系ですからプログラミングは必須です。将来のためを思ってプログラミングができるサークルを探しました。

結局は年会費無料でプログラミングも教えてくれてノルマも無いということでゲーム制作系のサークルに入りました。

 

 結果は入って良かったと強く思ってます。分からないことがあれば教えていただけますし、ゲーム制作のコンテストに「unity 一週間ゲームジャム」というのがありまして、企画発表ですごく刺激をもらえました。

ゲーム制作って意外と大変なのですが、みんながいたおかげで挫折することなく楽しんでます。

 

 実際は自分の将来的にC/C++が必要だったのでウェブアプリ開発に移り気味ですが、ちまちまサークルでゲームも作ってます。

 

そこで得た人脈のおかげもあってかインターンのご紹介もいただけましたし本当に入って良かったです。あと企業さんから私達のサークルが呼ばれるそうなので楽しみです。

 

↓ここから続き

 二つ目は、上にも述べましたが教えてくれる人がいると挫折しにくいです。今まで教えてくださった諸先輩方本当にありがとうございます。

 

 長くなってきました。本当は次の記事で残りを書きますといいたいのですが、僕が読者さんだったらめんどくなちゃうので、簡潔に書いていきますね。

 

 

 パターン2

1.使う言語の用途を調べる

例)C/C++だったら組込みシステムや画像認識に使われる

2.パターン1と同じように学習

 

 

 パターン3

1.自分の使う言語を決める。入りたい業種を決める。

例)言語別平均年収ランキングを調べる。AIに関わりたければ、「AI プログラミング言語」で検索をかける

2.学校に通う(大学、ITスクール、専門学校なんでも可)

3.PaizaなどのIT就職支援サイトには経験少なくても可能、未経験でも可能などあるので興味があれば求職サイトも覗く

 

 

 となってます。まぁ、とどのつまり何するか決めてとにかく勉強ということですね。勉強方法はパターン1に載せてありますので参考にしてください。自分もまだまだなのですが勉強はとても大切です。そしてとにかくアウトプット!作ってください。

 

 皆さんのこれができるようになった!という自慢話を楽しみに待ってます。

 

 

 

プライバシーポリシー

個人情報の利用目的

"孟日記"ではお問い合わせの際にお名前(ハンドルネーム)・メールアドレスなどの個人情報をご登録いただく場合がございます。

これらの個人情報は、質問に対する解答や必要な情報をご連絡する場合に利用させていただくものです。個人情報をご提供いただく際の目的以外では利用いたしません。

また当ブログでは、スパム・荒らしへの対応として、コメントをいただいた際に使用されたIPアドレスを記録しています。

これは、はてなブログの標準機能としてサポートされているものです。スパム・荒らしへの対応以外にこのIPアドレスを使用することはありません。

個人情報の保管

ユーザーの個人情報への不正アクセス・紛失・破損・改ざん・漏洩などを防止するため、セキュリティシステムの維持など必要な措置を講じて、個人情報の厳重な管理を行います。

個人情報の第三者への開示

次の場合を除いて、ユーザーからいただいた個人情報を、第三者に開示することはありません。

・提供者の同意がある場合 ・法令に基づく場合 ・不正行為やその他の違法行為を防ぐために個人情報の開示が必要となった場合

本人への開示 ご本人が個人情報の照会・修正・削除などをご希望される場合には、ご本人であることを確認の上、対応させていただきます。

広告の配信 Google アドセンスなど "孟日記"は第三者配信の広告サービス「Google アドセンス」・「A8.net」を利用しています。 広告配信事業者は、ユーザーの興味に応じた広告を表示するためにCookie(クッキー)を使用しています。

Cookieを使用することでユーザーのPCを識別できるようになりますが、ユーザー個人を特定できるものではありません。

Cookie(クッキー)を無効にする方法やGoogleアドセンスに関する詳細は「広告 – ポリシーと規約 – Google」をご覧ください。

Advertising – Privacy & Terms – Google

Amazon アソシエイト "孟日記"は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。Amazonのアソシエイトとして、"孟日記"は適格販売により収入を得ています。

Amazonアソシエイトの個人情報の取扱方法についてはAmazonプライバシー規約をご覧ください。

https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=GX7NJQ4ZB8MHFRNJ

アクセス解析ツール "孟日記"は、Googleが提供している分析ツール「Google アナリティクス」を利用して、ユーザーの行動を分析しています。

Google アナリティクスのデータのプライバシーとセキュリティについてはこちらをご覧ください。

データの保護 - アナリティクス ヘルプ

Google アナリティクスはトラフィックデータの収集のためにCookieを使用しています。トラフィックデータは匿名で収集されており、個人を特定するものではありません。

この機能はCookieを無効にすることで収集を拒否することが出来ます。お使いのブラウザの設定をご確認ください。

免責事項

当ブログからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当ブログのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当ブログに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

また、当ブログに掲載しているすべての記事は、予告なしに変更・削除されることがあります。予めご了承下さい。

肖像権について

当ブログは著作権や肖像権の侵害を目的としたものではありません。著作権や肖像権に関して問題がございましたら、お問い合わせフォームよりご連絡ください。確認後迅速に対応いたします。

著作権について

"孟日記"に掲載されている情報についての著作権は放棄しておりません。当ブログに掲載している文章や画像などにつきましては、無断転載することを禁止します。

当ブログからの引用に関しましては「引用元の明示」によって無償で引用頂けます。

ただし、全文転載はお断りいたしております。引用許可範囲についても、事前予告なくこれを変更する事があります。

プライバシーポリシーの変更について "孟日記"は、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。