エディタを作る-1の続き③ プロジェクト

テキスト・エディタで プログラム ソースを書き、コマンド・ラインから Cコンパイラ&リングで 実行ファイルを作成する。 こんな 古風な開発手順でも慣れてくれば それ程 面倒でもなくなる。

 ただし、問題なのは プログラムが複雑になって来た時のデバッグのし易さだ。 エディタとデバッガが同時に使え、ステップ実行でソース上でゆっくり追う事が出来、変数の中身を確認したり 変更したりできる・・・ そんな統合環境に慣れてしまうと、古い開発手順には戻りたくなくなる。

言語の入門書にありがちな傾向だが、① コンソール・アプリケーションをサンプルに使い(GUIアプリなどは触れもしない) ② デバッグ環境などまったく考慮に入れていない・・・ そんな解説がほとんどだ。 これでは有益な自作のプログラムなど 作れるようになるはずが無い!

 今回の「自作エディタを作る」という課題も、(MacOS上ではあるが)コンソールアプリを、手動コンパイルで開発しているし、”ホラ こんなソースが出来ました” と 動くプログラムを開示して ”ほら、動くでしょう~” で完結している。 これを、自分で開発・デバッグするのに printfデバッグでも使って行えと言うのであろうか?  考えただけで、環境の悪さに ゾッとする。

せっかく Visual Studio を使うのだから 統合環境を使わない手は無い。

統合環境(IDE)を使うに当たって 1つ 慣れないと面倒なのは 必ず「プロジェクト」を作らないといけない点だ。 慣れてしまえば、簡単なものだ。

1)プロジェクトを新規作成

 まず、まっさらな Visual Studio を起動する。

画像1

 ここでは Visual Studio 2017 ↑ を使ってみたが、VS2013でもVS2017でも、(現時点で)最新のVS2019 でも ほとんど同じなので、どのバージョンでも構わない (VS2010以前だと ちょっと異なるが)

起動すると、↓ こんな感じの 「統合環境」の画面が出て来る。
(かなり「重たい」プログラムなので 起動に時間がかかるとは 思う)

画像2

ここで まず最初に行うべき事は、[ファイル] → [新規作成]→[プロジェクト] と実行して 新たなプロジェクトを作ることだ。

02a-プロジェクト

プロジェクト作成には、↓ こんな画面が出るので まずは使用する言語を選択する。 → 今は当然ながら「C言語」である (正確には Visual C++ になる)

02b-プロジェクト

デフォルトの格納先が ↑ とにかく深くて ダサイ!
 C: ドライブの 
           Usersフォルダ内 ¥ユーザー名 (今はユーザー名=user)
    その下の Sourceフォルダ下の reposフォルダ 内

ここで、もし
   □ ソリューションのディレクトリを作成
に チェックが入っていると さらにソリューション名でフォルダを作ってしまう。 
  プロジェクト名:  ConsoleApplication1
  ソリューション名: ConsoleApplication1
と  これまた ダサくて長い名前のフォルダが作られる(デフォルトでは プロジェクトと同じ名前)


2)ソリューションなんていらない

チュートリアルに出て来るような小さなプログラムを試す時は、ソリューションを作らないように 常に チェックを外す。 (複数のプログラムで構成される大規模アプリでも開発しない限り ソリューションは要らないと思う)
  ソリューション  =  複数のプロジェクトの集まり
だからだ。

「新しいプロジェクト」の画面を見てもらうとわかるが、さらに作成するプログラムの種類も選択したいといけない。 これから作るサンプルプログラムは、コンソールで動作する「コンソール アプリ」で あるが、ここでは コンソール アプリを選択しない方が良い。 もし これを選択すると、

02c-コンソールアプリ

必要も無いソース ↑ が あらかじめ用意された Cppファイルが作られてしまう。 これも「余計なお世話」で 大半は削除しないといけない内容なので、かえって手間がかかる羽目になる。

 そこで、私は ①「空のプロジェクト」を選択するようにしている。

② 先に説明したように 「ソリューションのディレクトリを作成」のチェックを外し、(ソリューションは使わないようにし)
③ プロジェクトの名前を 分かりやすくシンプルな物に変え、
  → 例えば ”Hello” とか
④ プロジェクトの保存先を もっとアクセスしやすい場所に変える
  → 例えば ”D:¥C¥EditerConsole¥01day” とか。
   (コンソール・エディタの1日目 という意味)

試しに ”Hello空のプロジェクト” という、わざとらしく かつ 長いプロジェクト名で プロジェクトを作ってみる。 ↓ (もちろん ソリューションは外して)

画像9

すると、 C:\EditerConsole\01day フォルダの下に
 この長い名前 \Hello空のプロジェクト フォルダが作成され、さらに
 ごちゃごちゃと たくさん作られる訳のわからないファイルも ほぼ全部
 この名前になる。

画像10

 この ”Hello空のプロジェクト”  フォルダ の中に main.c 等のソースファイルが 所せましと入る事になる。

ビルドの際は、「デバッグ」モード と 「リリース」モードの2つが選択でき、私などは面倒なので ずっとデバッグモードのまま使っている。(もちろん デバッグする際はデバッグモードで行う) 
 デバッグモードで作られた 実行ファイルでも 特に問題無く動くからだ。

デバッグモードの際には さらに下に ¥Debug というフォルダが作られ、その中に実行可能なファイル (~.exe)が作られるのだが、これも プロジェクト名で作られる。 ↓

画像11

”Hello空のプロジェクト.exe”  ↑ という なんとも 間の抜けた名前ではあるが、これを単独で 別PCに持って行っても ちゃんと動作する。 

画像14

実験はさておき、現実的な プロジェクト名 ”hello” で 「空のプロジェクト」を作った場合 で見てみると、↓ 下のように ソースファイルもヘッダファイルも何も作られていない。 「空」なのだから当然だが・・・

02e-ファイル追加

ここに Cのソースファイルを作るには、2つの方法がある。


(1)新たに 手でコードを打ち込む場合
 ① ソースファイル と書かれた上で「右クリック」 →
 ② 「追加」→ ③ 「新しい項目」 として、

02f-ファイル追加

C++ファイルを選べば良い。
ここでファイル拡張子を .Cpp とすれば C++言語になるし、 .C とすれば 古き C言語として コンパイルできるようになる(はずだ)。 

02h-ファイル追加

ここは 実行ファイルの名称 等 に影響を与えないので、自由に名前を付ければ良い。 それでも main() 関数の入っているファイルは 常に main.c の方が分かりやすい様に思う。

(2)既に存在する Cソースファイルを使う場合

 書籍のチュートリアルの場合、その本のWebページがあって、ソースをダウンロードできるサービスが用意されている事がある。
そんな時は いちいちソースを手で入力する必要が無い。 この場合、

 「追加」→「新しい項目」では無く、
 「追加」→「既存の項目」を選べば、ファイルを選択する画面になる。

ダウンロードのサービスが無くたって、Webの画面から ソースをコピペした方が、楽に正確にソースファイルを作る事が出来る。 
なるべく 楽をして チュートリアルを進めて行こう。

1日目の 最初の Hello world を (統合環境のエディタに) 原本通りに 入力(または コピー)すると ↓ こんな感じになる。

画像12

画面左側にある赤マルは、ここで一時停止させるブレーク・ポイントで、マウスでここをクリックするだけで、簡単に設定・解除できる。

「ビルド」すると、return文が無いにも関わらず、エラーも警告も出ずに ビルドが正常終了した。(これは VisualStudio2017・・・ 前のバージョンでは 「returnが無い」って警告が出たような気がしたが・・・ 気のせいか?)

F5キーで 実行させると、「出力」Windowが別に出て来て、何事もない感じで実行できる。 ブレークポイントがあれば そこで停止するので、そこからステップ実行(F10)できるし、止めずに実行しても 前の環境と違って DOS窓が一瞬の表示だけで 閉じてしまう事も無い。

画像14

上 ↑ のように コンソール用のプログラムでも 開発環境から実行すると、何かキーを押すまで コンソールを閉じずに 待っていてくれる。 ( hello,world文字 の画面表示の確認ができる)

 少し古い Visual Studio (2013以前)では、 「デバッグ無しで実行」 Ctrlキーを押しながら F5 を押さないと、統合環境であっても 一瞬で DOS窓が閉じてしまっていた。 それが VS2017以降は改良されたようだ。  良く出来ている!

 。

ハッシュタグ
#C言語 #エディタを作る


この記事が気に入ったらサポートをしてみませんか?