第36講 複数のソフトをナビゲーションソフトから起動する(マルチスレッド研究)☆☆
第2話 新たなスレッドから新しいソフトを起動する方法を推測できた理由
私は、新しいスレッドから新しいソフトを起動する方法を書籍やサイトで調べないで自分で発見しました。
それはどうして可能になったかと申しますと、ソースファイルの*.cpp(*にはプロジェクト名=ソリューション名が入ります。)をみて、
新しいFormの起動が推測できたからです。
皆さんVC++を起動して新しいプロジェクトをクリックしましょう。
名前(プロジェクト名=ソリューション名)は何でも結構です。
私は、『スレッドの起動』という名前にしました。
全角入力だと問題が起きる環境の方は、
半角英数で適当な名前を付けてください。
私は、経験したことがありませんが、全角で名前を付けると問題を起こす環境もあると本には書いてあります。
問題を起こした経験をお持ちの方は、是非機器構成(環境)を教えていただければと思います。
そうすれば、どのような環境では全角がだめであるかを推測できます。
全角入力(漢字入力)で問題がなければ、私はプロジェクト名=ソリューション名は漢字で付けるべきだと思います。
ソフトの内容が推測できるからです。
漢字は、有意文字です。
漢字は音以上のデータを含んでいます。
タイピングソフトで練習した方は、
次のことを経験しているはずです。
ひらがなだけの文章より、漢字が適当に入っている文章の方が速く入力できることを。
漢字の方が速く読める=漢字で思考する方が思索が深い
ということだと私は考えています。
ですから、プロジェクト名=ソリューション名も漢字で入力したいものです。
VBAでは、変数に漢字を使うことができます。
VC++やVBでも変数に漢字が使えるように、是非とも漢字が使える仕様に変更していただけばと思います。
そうすれば、意味ありげな英単語で初心者を迷宮に誘い込んでいる悪書を追放できると思います。
繰り返しておきます。
変数やソリューション名を意味ありげな難しい英単語で書いていることが、
初心者の学習を妨げています。
でなければ、高校数学教諭の書いたVC++入門がGoogleでダントツのトップになることはあり得ません。
情報の免許を持っているとは、プログラムについては素人なのですから。
(現時点(2011/12/28)で『VC++ 入門』『VC++ 初心者』『VC++ 基礎』『VC++ 初歩』『VC++ 講義』
『Visual C++ 入門』『Visual C++ 初心者』『Visual C++ 基礎』『Visual C++ 初歩』『Visual C++
講義』『Visual C++ 応用』
『VC 入門』『VC 初心者』『VC 基礎』『VC 初歩』『VC 講義』のすべてでGoogleおいてトップです。
しかも、必ずしもC++の入門サイトでないにもかかわらず、『C++ 初歩』『C++ 応用』『C++ 講義』でも第1位にランクされています。)
変数を難しい英単語で書かないという私のとっている方針を初心者の方が受け入れているということです。
逆にいえば、いかに難しい英単語変数名が理解を困難にしていることがわかります。
入門書の著者たちは是非とも考えてください。
自分とって明らかであることは、初心者にはそうではありません。
初心者対しては、難しい専門用語や難しい英単語変数名は使うべきでありません。
専門用語は、使い慣れて確かに血になり肉になるのですが、
初心者は使い慣れる前に専門用語のために挫折してしまいます。
誰にでもプログラミングの世界に入ってもらうためには、
専門用語と難しい英単語変数名で乗り越えがたい、障壁を作ることをやめるべきです。
変数名は、プログラミング黎明期にとったiやaなどでよいではないですか。
それだと、何の変数であるかわからないということで英単語で変数を表すようになりました。
変数をaとしても注釈文でそれが何の変数であるかを説明するようにすれば、
何も問題はないのではないでしょうか。
注釈文を作っておいてコピペであちらこちらに貼り付けておけば、
何の問題もありません。
ごめんささい。脱線が長くなりました。本線に戻りましょう。
さて、Form1のデザインが開いたら、ソリューションエクスプローラーを表示して、
スレッドの起動.cpp(『スレッドの起動』の部分はあなたが付けたソリューション名)
をダブルクリックしましょう。すると、スレッドの起動.cppのコードが現れます。
そして、赤囲いに注目してください。
Application::Run(gcnew Form1()); ですね。
Runは走らせろ=実行せよ、
Applicationはアプリケーションソフト、
gcnewは新しく作るあるいは定義するの意味、
ですから、
Application::Run(gcnew Form1()); は
これから起動するアプリケーション名をForm1と名付けて、Form1を起動しなさい
という意味になることになります。
スレッドの起動.cppこそが、プログラムのメイン関数で、他の関数は『スレッドの起動.cpp』の支配下にあります。
Form1[デザイン]に戻り、Form1の中で右クリックして、コードの表示を選んでください。
すると、Form1のコードが入りますが、
ここがこれから起動するアプリケーションの内容を記入するものです。
例えば、
void InitializeComponent(void)
{
this->components = gcnew System::ComponentModel::Container();
this->Size = System::Drawing::Size(300,300);
this->Text = L"Form1";
this->Padding = System::Windows::Forms::Padding(0);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
}
のForm1のプロパティ(属性=左右の幅、上下の幅、Fontなど)が記入されています。
試しに、this->Text = L"Form1"; をthis->Text = L"ナビゲーションソフト";
と変更して、
Form1[デザイン]に戻ってみましょう。
Form1のTextが『ナビゲーションソフト』
になっています。
Form1のすべてのプロパティやコントロール(材料)は、ここの記入ですべて決まります。
どのように記入すべきかは、知らなくてよいのです。
VC++のデザインのコントロールやプロパティから直感的に操作できるようになっているからです。
ですから、Visual C++なのです。VisualなC++ということです。
Visual BasicならVisualなBasicです。
Visualは『視覚の』という意味です。
視覚的に操作できるプログラム言語です。
さて、新たなスレッドから新しいソフトを起動する方法を推測できた理由はもうおわかりですね。
では実際にはどうしたよいでしょうか。
VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual
Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)