|
それからが悪戦苦闘の連続でした。 そして 図5-3 に辿り着いたのが 6月9日 午後遅くのことです。 判ってしまえばたわいも無いことですが 「なんでこんなことで、こんなに時間が掛かったのか…」 です。 トホホ。 < 太田研究室 | Visual C++ 2010 Express プログラミング入門 > がテキストでなく画像で表示していたのを恨みました。 尤も、おかげで 「C は大文字小文字を区別する」 が骨の髄まで染みましたけど。 しかしこの内容で 『外部参照 1 が未解決』 ですか…。 vb なら 『'Sub Main' が、'ConsoleApplication1.Module1' に見つかりませんでした。』 と明確なのに…。 < クリックで拡大 > さて、< はじめに > に書きました 「その内容を日記風に綴っていくことにします」 と思った時に浮かんだ原稿はここまでです。 これから適当に vc と遊んで行きます。 その過程で掴んだ内容は追記していきますが今のところ書きたい内容はありませんので、ここまでで「とりあえずの後書き」として終了します。
|
< Windows アプリケーションとコンソールアプリケーション > < プロジェクトの構成 > < Visual C++ 2010 Express の起動と初期設定 > < プロジェクトとソースファイルの作成 > < プログラムの作成と実行 > と読み進んで、 < 高画質版 > を参考に下図のように手入力で打ち込みました。 普通はWebページから Copy&Paste するのですが画像になっているので手入力です。 尚、新しいプロジェクトはデフォルトなら MyDocuments¥Visual Studio 2010¥Projects¥ 以下に作成される (らしい) のですが、私の好みで自分専用の program フォルダ以下に作成されるようにしました。 図5-1 < クリックで拡大 > さて、コンパイル (メニュー > ビルド > ソリューションのビルド) した結果が以下です。 図5-2 < クリックで拡大 > 結論を先に書きましょう。 int ”M”ain がいけないのです。 C に慣れている人には当然の 「C は大文字小文字を区別する」 は知識としては知っていますが身に付いていませんでした。 私は Basic 暦が長く、関数名,変数名の最初の一文字を大文字で打つ癖がしみついていて、無意識に大文字にしてしまうのです。 その割には #include <stdio.h>,printf は小文字で打ち込んでいますが…。 (^^; こんな時に頼りになるのが グーグル兄貴 です。
最初にチェックしたのは次でした。 < visual studio c++ 2010 expressを使用して、下記ソースを ... > プロジェクトを新規作成するときに、[Win32アプリケーション]を選び、 出てきたウィザードで[コンソールアプリケーション]と[空のプロジェクト]にチェックを入れてください これは < プロジェクトとソースファイルの作成 > [4]アプリケーションの設定 で指示されている通りです。 しかし 『プロジェクトのプロパティ』 を見ても (見方が判らないので、そのようにしたつもりですが) その通りになっているのかが判りません。 大した手間でもないので プロジェクトの新規作成 から再スタートです。 今度は慎重に作業します。 しかし int ”M”ain と打ち込んでいますから当然ながら同じコンパイルエラーになります。 ここからの事をダラダラと書いても無駄に長くなりますので箇条書きにします。 1)『外部参照 1 が未解決』 との事なのでパスがおかしいのか? 自作専用フォルダでなくデフォルトのフォルダに保存されるようにした。 2) Cソースを検索して 図5-1 と同じくらい短いソースを C&P してコンパイルする。 ⇒ OK しかし 自作ソースだとコンパイルエラーになる。 ⇒ 何故? 3) [空のプロジェクト] でないプロジェクトを作ってみた。 そうすると、
その他、いろいろな種類のプロジェクトを作ってみた。 その他にも色々なことをしましたがうろ覚えなので忘れました。 いずれにしてもどうしても 図5-1 がコンパイルできません。 ついには vc のアンインストール,再インストールを考え始めた時…。 ふと 「C は大文字小文字を区別する」 に気が付きました。 で、int ”m”ain に変更したら…、 図5-3 < クリックで拡大 > ≪デバッグなしで開始≫すると当然ながら期待したとおりの結果になりました。 < クリックで拡大 >
|
先ず参考にしたのは、 < 太田研究室 | Visual C++ 2010 Express プログラミング入門 > です。 その 『もくじ』 に 『カスタマイズ - 「デバッグなしで開始」アイコンを表示する』という項目があり、何気なくそこを読みました。 「プログラムを実行するときに「デバッグなしで開始」コマンドを使用しますが、 このコマンドをメニューから毎回選ぶの面倒なので、ワンクリックで実行できるように ツールバーにアイコンとして表示させます。」 私は Excel, vb,vb6 等々、ツールバーをカスタマイズしています。 下図は vb の私のツールバーです。 頻繁に使用するコマンドを一段に表示させています。 「テキストエディタ」ツールバーが追加表示されて二段になっています。 最も大切なソースコードエディタ部を大きく表示させたいので頻繁に使用するコマンドだけを一段で表示できるようにカスタマイズします。 ところがこのカスタマイズにやたらと手間がかかります。 理由は一度にひとつしかコマンドを追加できないからです。 メニューバー > 表示 > ツールバー > カスタマイズ > コマンドタブ > ○ツールバー選択 迄は良いでしょう。 ≪コマンドの追加≫クリック > カテゴリ を選んで追加したいコマンドを選び≪OK≫をクリックすると追加されます。 続けて追加したい、とすると ≪コマンドの追加≫ クリック から始めなければなりません。 コマンドカテゴリ内のコマンド数が非常に多いので探すのが大変なのです。 例えば 「次のブックマーク」 を追加したら 「前のブックマーク」 も追加したくなります。 同じ種類のコマンドはコマンドカテゴリ内にまとまって置いてありますから複数のコマンドを一度に追加できればとても楽に追加できます。 この程度の 「おもいやり仕様」 はチョット気の利いたプログラマーなら必ず盛り込むと思います。 Microsoft はこういう重箱の隅のような仕様設計が弱い、とつくづく思います。 又、≪選択した釦の編集≫ に ≪グループの始まり≫ があり、これをクリックすると 『横棒』が追加されます。 私は Microsoft はバグを仕様と言い張る会社だと思っています。 例: < [XL2000]SaveAsメソッドでテキストファイル保存すると書式が変更される > バグの定義は人によっても違うでしょうけど、私の考えは次の通りです。 そうなるように設計された機能が仕様であり、それ以外はバグ 上の例でも 「イヤ、これは仕様でしょう」 と思う人はそれで構いません。 しかし、私にとってはバグです。 ツールバーカスタマイズにおいて 「区切り線」 がすぐに反映されない、には何か理由があるのかもしれません。 例えば 「すぐに反映させるようにする為には膨大なプログラミング量が必要になる」 とかです。 しかし、コマンド釦はすぐに反映されるのですから 「区切り線」 だけが反映されない理由は無いはずです。 Microsoft にこの件で問合せはしていませんから理由は判りません。 しかし 「仕様です」 と回答されるのは目に見えています。 仕様ならば 「すぐに反映させないように設計した理由を聞きたい」と続くのですが…。 恐らくは ≪グループの始まり≫ で 「区切り線」 が表示されるように設計したがすぐに反映するように作るのを忘れた。 私がプログラムを作ったならこの時点で設計者にとっての 「バグ」 です。 でも、Microsoft は大きな問題ではないからそのまま仕様という事にした、とかだと思います。 無料品にクレームする気はないのでこの辺りで止めます。 ※しかし、何度も々々書きますが有料版でも変わらないだろう、と私は思っています。
|
普通ならこれは vc の最新版をチェックする、と思いませんか? ところが違うのです。 < Microsoft Update サイト > 、つまり Windows の Update サイトに行くのです。 「Windows Update で vc が最新版になるはずが無い」と思いながらも、ここに来るのですから止むを得ません。 ≪更新プログラムのインストール≫ をクリックします。 ↓ ↓ ↓ ≪更新プログラムのインストール≫ が完了しました。 バージョンを確認してみましょう。 図3-1 < クリックで拡大 > Security Update for Microsoft Visual C++ 2010 Express - 日本語 の、2つが追加されましたが、Service Pack 1 にはなっていません。 Windows Update で Service Pack 1 になるとは思っていませんでしたし、一応は上記の2つが追加もされ全くの無駄では無かった訳ですので、これは許しましょう。 私は Windows Update をしても何も変わらないだろう、と思っていたのでこの結果は実は意外でした。 ※α さて、ではどうすれば Service Pack 1 にバージョンアップできるのでしょうか? vc の Service Pack 1 モジュールは下記からダウンロードできます。 < Microsoft Visual Studio 2010 Service Pack 1 (インストーラー) > ここから 【VS10sp1-KB983509.exe】 サイズ 800Kb というファイルがダウンロードできます。 これも ダウンロード,インストール モジュールです。 では実行します。 クリックで拡大 クリックで拡大 【VC10sp1-KB983509-x86.msp】 のダウンロードに失敗して再試行しているようです。 そして案の定インストールに失敗します。 図3-2 < クリックで拡大 > 順調に行くことの方が珍しいです。 ところで上図に 『マイクロソフトに問題報告を送信するよう求めるメッセージが表示されます。』 とのコメントが記されています。 皆さんは問題報告を送信されますか? 私は 絶対に 送信しません。 「Microsoft は少しでも問題が無くなる様に努力していますから怒らないでネ。クレームしないでネ。」 との見せかけのポーズだけで何もしない事が判っていますから。 vs2010 Service Pack 1 がリリースされたのは 2011年3月 です。 それから3年も経過しています。 その間にこのトラブルに遭い問題報告を送信した人は少なからず居たでしょう。 にも関わらず未だに同じ問題が発生しています。 上図3-2 には 「サブジェクトに署名がありませんでした。」 と書かれています。 これが本当なら 「VC10sp1-KB983509-x86.msp」 に 「署名」 を入れれば良いですし、違っているなら (より原因に近い) 別のコメントに変更すべきです。 まぁ、無料で使わさせて "戴く" のですから贅沢は言えません。 「KB983509 ダウンロード 失敗」でググれば数多くヒットします。 いくつかをざっと読んだだけでも多くの人が同じ目に遭って対処されていますから私もそれらを参考にすれば解決するでしょう。 さて、ダウンロード失敗ならたまたまネットワーク環境が悪かっただけかもしれません。 再度 【VS10sp1-KB983509.exe】 を実行します。 < クリックで拡大 > 『再適用します』 を選んで ≪次へ≫ をクリックします。 クリックで拡大 やはり【VC10sp1-KB983509-x86.msp】 のダウンロードに失敗しているようです。 「次は何をしようかナ」 とのんびり考えている最中に何気なく 図3-2 の 『Microsoft Visual Studio 2010 Service Pack 1 の最新バージョンについては Windows Update を参照してください。』 の下線部をクリックしました。 予想通り Windows Update にジャンプします。 すると…、 < クリックで拡大 > ※α に書いた「Windows Update をしても何も変わらない」 は撤回することにします。 もちろん、ここで ≪更新プログラムのインストール≫ を実行しても 「失敗」 するかもしれません。 しかし、何かを実行して 「失敗」 するのと 「なにもしない」 のとでは雲泥の違いがあります。 まぁ、あまり期待せずに ≪更新プログラムのインストール≫ を実行します。 クリックで拡大 ダウンロードは完了したようです。 「もしかしたら…」 と期待が膨らみます。 そして何と…、 < クリックで拡大 > 再起動して vc のバージョンを確認します。 図3-3 < クリックで拡大 > 思ったよりスムーズでした。 尚、図3-1 と比べると Security Update for Microsoft Visual C++ 2010 Express - 日本語 (KB2251489) KB2251489 が無くなっています。 何故無くなったのでしょう? これが無くても問題ないのでしょうか? まぁ、こんなことを一々気にしていたら Microsoft とは付き合えません。 以下、蛇足です。 実はここまでの内容は "嘘" ではないのですが正確には "仮の姿" ではあります。 わたしは < 『はじめに』 > で、以下のように書きました。 おそらく、これから vc で遊んでいく過程において、同様に 「なんでこんなことで…」 という場面に度々遭遇するでしょう。 その内容を日記風に綴っていくことにします。 これが 6月9日 の事です。 ここに至るまでこんな事は考えていなかったので途中経過のスクリーンショットは撮っていません。 これを書く、と決めたので他のPCでここまでの経過を再現させ、その過程,スクリーンショットを掲載しています。 私のPCには元々 vb SP1 がインストール済みです。 そこに vc をインストールし最初に起動させたところ 『vcのバージョンが古いのでSP1適用が必要。≪適用を実行≫』 のようなダイアログが表示されました。 そこから実行させると時間は掛かりましたが、ここに書いたような SP1インストール失敗 というような事態には陥らず、スムーズに SP1 が適用されました。 もし、私と同じような環境で vc をインストールする人が居て、その人がここを読んで 「自分と状況が違うが…」 と戸惑うことが無いように念の為に蛇足ではありますが追記しておきます。 下図は私の実PCのバージョンです。 < クリックで拡大 > Hotfix Microsoft Visual C++ 2010 Express - 日本語 (KB2542054) KB2542054 Microsoft Visual C++ 2010 Express -日本語 (KB2635973) 用の修正プログラム KB2635973 の2つが欠けています。 今後の記事において、この2つが無いことによる影響があるかもしれません。 この2つが適用されていれば出ない現象が出るかもしれません。 それをご承知くださった上で読み続けてください。
|
図2-3 < クリックで拡大 > Microsoft アカウント には普段自分が使用しているメールアドレスを使って登録します。 偶然、vc をダウンロードする数日前に以下のWeb記事を読みました。 < 365日間Windows Live IDのサインインをしないと製品ユーザー ... > Windows Live ID とは今の Microsoft アカウント のことです。 内容は
2009年5月の話なので今でも Microsoft アカウント が同じ対応内容なのか否かは不明です。 無料で使わさせて "戴く" のですから Microsoft アカウント を作成して、vc 「登録」 をするのは止むを得ません。 私たちにできることは Microsoft アカウント を作成する際に、目を皿のようにして 「ニュースレター配信」に関わるチェックボックスを必ず外すことです。 Microsoft アカウント など使うつもりがなければ vc 「登録」 後にサインインすることなどありません。 そのまま1年経過すれば Microsoft アカウント は削除されサインインできなくなりますので、個人設定の変更もできなくなります。 私は vb を長く使っていますので Microsoft アカウント (又は、それに類するもの) を作って vb 「登録」 をしたはずです。 しかしそんなことはすっかり忘れています。 今回、vc 「登録」 をするにあたり 「おそらく vb のときも『登録』したんだろうナ」 と思っている程度です。 さて、Microsoft アカウント を作った後、図2-3 の ≪オンラインで登録キーを取得する≫ をクリックします。 デフォルトブラウザが起動しますので Microsoft アカウント にサインインし必要事項を記入して完了すると以下になります。 図2-4 < クリックで拡大 > 普通ならここに登録キーが表示される、と思いませんか? 登録キーは Microsoft アカウント (つまり、普段自分が使用しているメールアドレス) 宛に送信されるのですが、それならば 図2-4 にその旨を表示しても良さそうなものです。 第一章でも書きましたが 「無料なのだから文句を言うな」 ということでしょうか? ※しかし有料版でも変わらないだろう、と私は思っています。 で、下図が登録キー連絡メールです。 < クリックで拡大 > HTMLメールは今ではかなり一般化してしまいましたが多くの問題を抱えていることに違いはありません。 < IT用語辞典 HTMLメール > < HTMLメールはやめよう > メールのようなプレーンテキストで充分な内容をHTML表示する必要性は全く無いし、わざわざウィルスに感染する危険性を冒すなど愚の骨頂です。 それにどうしてもHTML表示したいなら、図2-4 で表示すれば良いのです。 私はメールソフトに MS Outlook を使っていますが 「すべての標準メールをテキスト形式で表示する」 を有効にしています。 この機能を MS Outlook に設けているのですから、これを有効にしているユーザーが居るであろうことを Microsoft は認識しているはずです。 なにも知らない一般ユーザがHTMLメールを送ってくるのならいざ知らず、これらのことを知っているのにHTMLメールを送ってくる Microsoft は傲慢だと思っています。 HTMLメールを送信者の意図通りに受信(表示)するにはその機能を有効にしていなければなりません。 ウィキペディアの < HTML電子メール > の項目には以下のように書かれています。
しかし今だにそのようなメールが飛び交ってもいるでかもしれません。 最近はあまり見かけなくなりましたが。 この危険性はプレーンテキストメールでもゼロではありませんが、HTMLメールの危険性の比ではありません。 Microsoft からメールを受け取るには HTMLメール受信機能を有効にする必要があり、そうするとフィッシングに引っかかる危険性が高まります。 これは Microsoft はフィッシングに加担している、ということではないでしょうか。 尤も銀行から送られるメールですらHTMLメールの例もありますから Microsoft だけを責めることもできませんけど…。 さて、vc 「登録」 後は起動させると図2-1が下図になります。 < クリックで拡大 > バージョンを確認します。 < クリックで拡大 > ところで、私は 第二章で次のように書きました。 ただ、この方式にも利点はあります。 常に最新版がダウンロード,インストールされる、ということです。 ところが Microsoft はここも手を抜いています。 どうせ最新版がダウンロード,インストールされないのならば何の為のダウンロード,インストール用モジュールなのでしょう? 本体ファイルをそのまま zip に圧縮して、ユーザーに解凍,インストールさせれば良いと思います。 C をやろうとしている人がまさか zip の解凍,インストールができない,手間取る、とは思えません。 私には百害あって一利無し、としか思えません。 どなたか 「そんなことは無いんだヨ」 と教えて戴ければありがたいです。 まぁ、無料品に文句ばかり言ってもしょうがありません。 ※何度も書きますが有料版でも変わらないだろう、と私は思っています。
|
前記しましたように vb を無料で使用させて貰っているし、この vc も無料です。 特に vb は使いこなす内に 「これはとてつもなく素晴らしいソフトだ」 と感じることが多々あり、これほどの素晴らしいソフトを無料で使わさせてくれる Microsoft には非常に感謝しています。 それでも大嫌いなことには変わりはありません。 その嫌いな理由もおいおい書いていきますが、ここでの 「ダウンロード」 もその理由の一つです。 「vc++2010 express ダウンロード」でググると以下がヒットしました。 < Microsoft Visual Studio Express > ※α ここは vs2012 に関わるダウンロードページです。 何故 vs2010 に関しては案内していないのでしょう。 トップページが vs2012 でも全く問題ありませんが、vs2010 をダウンロードしたいユーザ向けにリンクを貼っておくことが何故できないのでしょう? 「無料なのだから文句を言うな」 と言われているようで非常に気分が悪くなります。 勿論、ググれば vs2010 をダウンロードできるページもヒットします。 < Visual Basic 2010 Express のダウンロードページを教えて ... > しかし、このように質問者が居て、回答者が居て、それで初めて vs2010 ダウンロードページに辿り着くなどありえません。 と、いうことで vs2010 は以下からダウンロードします。 < Visual Studio のダウンロード > ※β 真ん中辺りに 「 Visual Studio 2010 Express」 があり、ここからダウンロードできます。 私は < マイクロソフト トップページ > から、この vs2010 ダウンロードページに辿り着くことはできませんでした。 こういうページがチャンと用意されているなら、※α にここへのリンクを貼っておけば済むのにそのようにしない Microsoft が大嫌いです。 たとえ Express は無料だとしても 「では有料版ならばもっとキチンとしているのか?」 と言えばそんなことも無いだろうし。 ところで、※β から vc++2010 はダウンロードできるのですが、私の環境 (WinXP Pro SP3) の IE8 ではダウンロードできません。 「Visual C++ 2010 Express」 をクリックすると下図になるはずがなりません。 これは FireFox です < クリックで拡大 > Win2003 IE6 でもNGなので IE8 以下ではNGなのかもしれません。 自社製ブラウザでダウンロードできないWebページを作る Microsoft。 こういう所も大嫌いな理由です。 さて、ダウンロードすると、【vc_web.exe】 サイズ 3.3Mb がダウンロードできます。 これは vc本体をダウンロード,インストールする為のモジュールですネ。 これを実行すると下図になります。 クリックで拡大 贅沢ばかり言ってもきりがありませんが私は大嫌いです。 なぜならば、 1) 容量の大きな本体ファイルがどこにダウンロードされるのかが判らない。 恐らく Cドライブだと思うが、Cドライブの残容量が少ない時は困る。 ダウンロード,インストール完了後に削除されたか否かも不明。 2) なんらかの理由でアンインストール → 再インストール する場合、本体ファイルをダウンロード済みなら直ちに再インストールできる。 3) 他のPCにもインストールする場合、同じくダウンロードしなくてはならない。 実に無駄。 本体ファイルをダウンロードできているのならコピーした方が遥かに手間が省ける。 ただ、この方式にも利点はあります。 常に最新版がダウンロード,インストールされる、ということです。 ところが Microsoft はここも手を抜いています。 詳しくは第三章をご覧ください。 さて、インストールが完了しました。 < クリックで拡大 >
|
大学の選択科目に FORTRAN に関する授業がありました。 プログラムの一行が一枚のマークシートカードに対応し、それに鉛筆で記入してカードリーダーで読み込ませ実行結果はプリンターに出力する、というものでした。 これでプログラムの面白さに取り付かれました。 数年後、1981年に発売されたばかりの NEC PC9821 を購入してから趣味でプログラミングしていました。 プログラムの本格的なスタートは N88-Basic です。 それから Quick-Basic → Visual-Basic(VB6) → vb.net(vb2010 Express)と進んで来ました。 ということで、2014/6/6迄 Basic 一本やりでした。 特に vb.net になり、 1.vb.net は MSIL(Microsoft Intermediate Language)にコンパイルされる。 2.vc.net も MSIL にコンパイルされる。 3.vb.net も vc.net も MSIL にコンパイルされるのだから、どちらでプログラムしても結果は同じ。 ※私のこの理解は間違っているかもしれません となってからは C の必要性を全く感じないまま今まで過ごして来ました。 これまでも C を勉強したことはあるので 基本文法は知っていましたが Basic の気軽さに比べ C はハードルが高く、又、Basic で全く問題が無いこともあり C は放置していました。 さて、2014/6/6 久しぶりに C に挑戦しました。 必要性に迫られた訳ではなく、単なる知的好奇心からでした。 単純に vc++ 2010 Express を ダウンロード,インストール し、「vc++ 入門」 Webページを参考にたった6行のプログラムを手入力して 「とりあえずはコンパイル」 するとエラーになりました。 で、エラーメッセージを元にググッて対処方法を調べましたがどうしても原因が判りません。 最終的には判ったのですが、その内容が 「なんでこんなことで、こんなに時間が掛かったのか…」 です。 これで私の心に火が付きました。 おそらく、これから vc で遊んでいく過程において、同様に 「なんでこんなことで…」 という場面に度々遭遇するでしょう。 その内容を日記風に綴っていくことにします。
|